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

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

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

任何想法?


当前回答

2021年没有世博会

设原App名称为:com.myApp 让新的应用程序名称:com.newname.myApp

android\app\src\main\AndroidManifest.xml


重命名xml属性:' package="com.newname.myApp"


android主要\ app \ src \ \ java \ com \ [yourAppName] \ MainActivity.java

重命名包com.myApp的第一行;来打包com.newname.myApp;


android主要\ app \ src \ \ java \ com \ [yourAppName] \ MainApplication.java

重命名第一行到包com.newname.myApp;

在类中私有静态void initializeFlipper 复述这句话:

Class<?> aClass = Class.forName(“com.myApp.ReactNativeFlipper”);

To

Class<?> aClass = Class.forName(“com.newname.myApp.ReactNativeFlipper”);


Android\app\build.gradle

在defaultConfig上重命名applicationId

“com.newname.myApp”


在命令行上运行: $ NPX react-native start $ NPX react-native run-android

其他回答

Goto Android工作室

右键单击你的包(最可能是com)-> Refractor -> Rename ->在对话框中输入新的包名称-> Do Refractor

它将重命名您的包的名称。

我今天才知道这个答案,但添加这个答案是为了帮助别人。你只需要在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

要更改包的名称,您必须在项目中编辑四个文件:

 1. android/app/src/main/java/com/reactNativeSampleApp/MainActivity.java
 2. android/app/src/main/java/com/reactNativeSampleApp/MainApplication.java
 3. android/app/src/main/AndroidManifest.xml
 4. android/app/build.gradle

前两个文件的包名如下所示。

 package com.WHATEVER_YOUR_PACKAGE_NAME_IS;

将其更改为所需的包名称。

 package com.YOUR_DESIRED_PACKAGE_NAME;

您还必须在另外两个文件中编辑包名。

  android/app/build.gradle

  android/app/src/main/AndroidManifest.xml

注意你是否有谷歌服务。Json文件,那么你还必须改变该文件中的包名。

在这之后,你必须清理你的项目。

我使用react-native-rename* npm包。通过

npm install react-native-rename -g

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

react-native-rename "MyApp" -b com.mycompany.myapp

我通过在以下位置手动更新包名来解决这个问题

1) app.json               |  ./
2) index.js               |  ./
3) package.json           |  ./
4) settings.gradle        |  ./android/
5) BUCK                   |  ./android/app/
6) build.gradle           |  ./android/app/
7) AndroidManifest.xml    |  ./android/app/src/main/
8) MainActivity.java      |  ./android/app/src/main/java/**
9) MainApplication.java   |  ./android/app/src/main/java/**
10)strings.xml            |  ./android/app/src/main/res/values
11)ReactNativeFlipper.java|  ./android/app/src/debug/java/com/<package-name>/