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

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

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

任何想法?


当前回答

Goto Android工作室

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

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

其他回答

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

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>/

我重命名了项目的子文件夹从:“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 "MyApp" -b com.mycompany.myapp

确保也转到构建。Gradle在android/app/… 并重命名应用程序Id如下所示:

defaultConfig {
        applicationId:com.appname.xxx
........
}

反应Native@0.70.x 尝试从com重命名包名。X到com.y.z

我通过以下方法度过了这个痛苦的过程:

将app.json中的displayName更改为z。

{
  "name": "<THIS_SHOULD_STAY_SAME>",
  "displayName": "<Z>"
}

修改strings.xml中字符串app_name的内容

<resources>
  ...
  <string name="app_name"><Z></string>
  ...
</resources>

在react-native项目中搜索com。X和替换所有com。X与com.y.z

重要:以防您正在使用外部服务,以及以防如果 你生成了一个文件,把它放在/android下 确保您正在使用的服务仍然正常工作。我建议 您必须使用新的包名生成一个新的配置文件 Com.y.z,然后把它放在完成下面描述的步骤之后。

更新文件夹结构如下:

old: .../android/app/src/main/java/com/x
new: .../android/app/src/main/java/com/y/z

将所有文件移动到…/android/app/src/main/java/com/x到/android/app/src/main/java/com/y/z。 清理。

  $ ./gradlew clean

构建。

  $ react-native run-android

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