React Native:无法更改包名称 - 总是失败

Jan*_*Jan 2 android npm reactjs package-name react-native

目前我正面临一个问题,我已经尝试解决了 3 天。我想为我的本机 android 应用程序重命名我的包名称。

因此,为了完全确定我所做的一切都是正确的,我创建了一个新项目并尝试重命名包名称。我这样做是为了确保错误不是来自我的项目,而且我还无法修复我的错误。

我像往常一样初始化了一个新项目:react-native init MyAwesomeProject.

然后我com.myawesomeproject在以下文件中替换为com.awesome.project.

/安卓/应用程序/降压:

android_build_config(
...
package = 'com.awesome.project',
)
android_resource(
...
package = 'com.awesome.project',
)
Run Code Online (Sandbox Code Playgroud)

android/app/src/main/AndroidManifest.xml

package="com.awesome.project"
Run Code Online (Sandbox Code Playgroud)

android/app/build.gradle

defaultConfig {
    applicationId "com.awesome.project"
    ...
}
Run Code Online (Sandbox Code Playgroud)

此外,我已经取代package com.myawesomeproject;package com.awesome.project;和移动MainActivity.javaMainApplication.java文件,从android/app/src/main/java/com/myawesomeproject/到新的路径android/app/src/main/java/com/awesome/myawesomeproject/

完成所有这些更改后,我./gradlew clean在我的 android 文件夹中运行,然后执行此命令react-native run-android

但是,我仍然面临与我在实际项目中面临的完全相同的问题。

> Task :app:compileDebugJavaWithJavac FAILED
/Users/max/Desktop/Max/MyAwesomeProject/android/app/src/main/java/com/myawesomeproject/MainApplication.java:19: error: cannot find symbol
      return BuildConfig.DEBUG;
             ^
  symbol: variable BuildConfig
1 error


FAILURE: Build failed with an exception. 
Run Code Online (Sandbox Code Playgroud)

另外,我已经尝试将以下代码添加到MainApplication.java文件顶部:

import com.facebook.react.BuildConfig;

但是我已经将代码添加到了MainApplication.java定位中,android/app/src/main/java/com/myawesomeproject就像它在错误输出中所说的那样。如果你这样做,控制台在运行后不会抛出任何错误react-native run-android,但是,应用程序myawesomeproject被安装,如果你尝试打开它,应用程序会崩溃。

这清楚地表明,react 仍在使用错误的路径!

我什至尝试过npm rename 包运行以下命令:

react-native-rename "project" -b com.project.

甚至这都不能解决我的问题。运行时我仍然遇到完全相同的错误react-native run-android

你们可以看到问题不是来自我的项目,因为在我建立了一个完全从头开始构建的新项目后,我遇到了完全相同的问题!

我将不胜感激任何形式的帮助!谢谢你们。

And*_*rew 7

重命名时要在多个文件中进行更改。所以它会变得棘手。使用react-native rename使它非常容易。

使用 react-native-rename

我只是尝试使用以下方法设置初始项目: react-native init MyAwesomeProject

然后我跑了: npm install react-native-rename -g

然后更改我运行的项目的名称,cd MyAwesomeProject然后是

react-native-rename "project" -b com.awesome.project

然后运行react-native run-android它构建没有错误。

安卓手动

如果您计划手动进行更改,则需要更改很多文件。实际上可能还有更多,具体取决于您添加到项目中的内容。这是更改 vanilla 项目的指南。

在应用程序根

app.json改变namedisplayName成为"project"

package.json改变name成为"name": "project",

android/settings.gradle

将 更改为rootProject.name您想要的名称:rootProject.name = 'project'

android/app/build.gradle

在默认配置中,将 applicationId 更改为您想要的应用程序 ID,在这种情况下: applicationId com.awesome.project

安卓/应用程序/降压

android_build_config和 中的包更改为android_resources所需的包,在这种情况下:package = "com.awesome.project",

android/app/src/main/AndroidManifest.xml

将包更改为所需的包名称,在本例中: package="com.awesome.project"

android/app/src/main/res/values/strings.xml

在这种情况下,将应用程序名称更改为所需的应用程序名称 <string name="app_name">project</string>

更新 *.java 文件

这一点比较棘手,因为您必须创建文件夹、移动文件,然后重命名文件内部的部分内容。

android/app/src/main/java/com/

创建一个名为的文件夹,awesome并在该文件夹内创建一个名为的文件夹project

复制MainActivty.javaMainApplication.javaandroid/app/src/main/java/com/myawesomeproject到最近创建的android/app/src/main/java/com/awesome/project文件夹。

在 the MainActivity.javaMainApplication.javaremane 中,文件顶部的包从package com.myawesomeproject;package com.awesome.project;

同样在MainActivity.javagetComponentName()函数返回的字符串重命名为"project"

手动 iOS

手动操作有点麻烦,但是在 Xcode 中更改包 ID 和应用程序名称很简单。我不会像您刚刚专门针对 Android 要求的那样完成 Xcode 过程。