我使用React - Native init MyApp初始化一个新的React Native应用程序。 这创建了一个带有com.myapp包的Android项目。

更改这个包名称的最佳方法是什么,例如:com.mycompany.myapp?

我尝试在AndroidManifest.xml中更改它,但它创建了其他错误,所以我假设这不是方法。

任何想法?


当前回答

转到Android Studio,打开应用程序,右键单击java并选择 新建,然后打包。

给出你想要的名字(例如com.something)。

将文件从另一个包(要重命名)移动到新包。删除旧包。

在编辑器中找到你的项目,使用快捷方式搜索所有文件(在mac上是shift cmd F)。输入旧包的名称。更改对新包名的所有引用。

点击Android Studio,构建,清洁项目,重建项目。

完成了!

快乐编码:)

其他回答

我重命名了项目的子文件夹从:“android/app/src/main/java/MY/ app/ OLD_ID/”到:“android/app/src/main/java/MY/ app/ NEW_ID/”

然后手动切换新旧包id:

: android / app / src / main / java /我的/ app / NEW_ID / MainActivity.java:

package MY.APP.NEW_ID;

在android / app / src / main / java /我的/ app / NEW_ID / MainApplication.java:

package MY.APP.NEW_ID;

在android / app / src / main / AndroidManifest.xml:

package="MY.APP.NEW_ID"

在android/app/build.gradle中:

applicationId "MY.APP.NEW_ID"

在android / app /美元:

android_build_config(
  package="MY.APP.NEW_ID"
)
android_resource(
  package="MY.APP.NEW_ID"
)

Gradle'清理结束(在/android文件夹):

./gradlew clean

你可以简单地使用react-native-rename NPM包。

安装使用

NPM安装react-native-rename -g

然后从React Native项目的根目录执行以下命令

MyApp -b com.mycompany

在NPM上React-native-rename

但是注意,这个库删除了MainActivity.java和MainApplication.java。 在更改包名之前,对这两个文件进行备份,并在更改包名后将其放回原处。这个解决办法对我有用

更多信息: react-native-rename

我今天才知道这个答案,但添加这个答案是为了帮助别人。你只需要在app/build中添加一个命名空间。Gradle引用旧的名字,像这样:

defaultConfig {
  applicationId "com.mycompany.myapp"
  namespace "com.myapp"
}

然后你可以有一个bash脚本,用这样的东西改变applicationId:

function sedi {
  if [ "$(uname)" == "Linux" ]; then
    \sed -i "$@"
  else
    \sed -i "" "$@"
  fi
}

bundle_name=com.mycompany.myapp

sedi -E "s/applicationId \"[-0-9a-zA-Z._]*\"/applicationId \"${bundle_name}\"/" android/app/build.gradle

转到Android Studio,打开应用程序,右键单击java并选择 新建,然后打包。

给出你想要的名字(例如com.something)。

将文件从另一个包(要重命名)移动到新包。删除旧包。

在编辑器中找到你的项目,使用快捷方式搜索所有文件(在mac上是shift cmd F)。输入旧包的名称。更改对新包名的所有引用。

点击Android Studio,构建,清洁项目,重建项目。

完成了!

快乐编码:)

这些信息对你很有帮助,所以仔细听……

After updating package name and changing files, don't forget to change in 
package.json and app.json file at the root directory of your react native project

否则,您将得到下面的错误

Invariant Violation: "Your new package name" has not been registered