我克隆了f8app项目

然后在这个项目中运行 react-native upgrade

它将在路径 android/app/src/main/java/com/f8v2/MainActivity.java 创建MainActivity.java,而不是使用原始路径 .

原来的道路是

android/app/src/main/java/com/facebook/f8/MainActivity.java

以下是我的操作

$ git clone git@github.com:fbsamples/f8app.git
$ cd f8app
$ npm install
$ ls android/app/src/main/java/com/facebook/f8
MainActivity.java
$ react-native upgrade
Upgrading project to react-native v0.28.0
...
   create android/app/src/main/java/com/f8v2/MainActivity.java

其他信息

  • React Native版本:0.28.0

  • 平台:android

  • 操作系统:MacOS,Windows

实际上这不是版本的问题 .

它也会在其他版本中创建新文件,例如 . 0.32.0

看起来它会根据package.json中的名称而不是 android/app/src/main/AndroidManifest.xml 中的现有包名创建新文件,我在这里检查了升级过程中的代码https://github.com/facebook/react-native/blob/0.38-stable/local-cli/generator-android/index.js

this.option('package', {
  desc: 'Package name for the application (com.example.app)',
  type: String,
  defaults: 'com.' + this.name.toLowerCase()
});

...

var javaPath = path.join.apply(
  null,
  ['android', 'app', 'src', 'main', 'java'].concat(this.options.package.split('.'))
);
this.fs.copyTpl(
  this.templatePath(path.join('package', '**')),
  this.destinationPath(javaPath),
  templateParams
);

如何与原始路径保持一致?