目前,我正面临一个问题,自3天以来我一直试图解决。.我想为我的react native android应用程序重命名我的包名称。
因此,为了完全确保我所做的一切正确,我创建了一个新项目并尝试重命名包名称。我这样做是为了确保错误不是来自我的项目,并且还无法修复我的错误。
我像往常一样初始化了一个新项目:react-native init MyAwesomeProject
。
然后我将以下文件中的com.myawesomeproject
替换为com.awesome.project
。
/ android / app / BUCK:
android_build_config(
...
package = 'com.awesome.project',
)
android_resource(
...
package = 'com.awesome.project',
)
android / app / src / main / AndroidManifest.xml
package="com.awesome.project"
android / app / build.gradle
defaultConfig {
applicationId "com.awesome.project"
...
}
我还用package com.myawesomeproject;
替换了package com.awesome.project;
,并将MainActivity.java
和MainApplication.java
文件从android/app/src/main/java/com/myawesomeproject/
移到了新路径android/app/src/main/java/com/awesome/myawesomeproject/
。 / p>
完成所有这些更改后,我在android文件夹中运行了./gradlew clean
,然后运行了该命令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.
此外,我已经尝试将以下代码添加到MainApplication.java
文件的顶部:
import com.facebook.react.BuildConfig;
但是我已将代码添加到位于MainApplication.java
的{{1}}中,就像在错误输出中说的那样。如果这样做,则控制台在运行android/app/src/main/java/com/myawesomeproject
之后不会引发任何错误,但是会安装应用react-native run-android
,并且如果尝试打开它,则该应用将崩溃。
这清楚地表明React仍在使用错误的路径!
我什至尝试了npm rename package并运行了以下命令:
myawesomeproject
。
这甚至都不能解决我的问题。运行react-native-rename "project" -b com.project
时,我仍然完全错误。
你们可以看到问题不是来自我的项目,因为在我建立了一个完全从头开始构建的新项目之后,我遇到了完全相同的问题!
我将不胜感激!谢谢你们。
答案 0 :(得分:2)
重命名时,多个文件中要进行更改。因此可能会变得棘手。使用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
,它将生成没有错误的内容。
如果您打算手动进行更改,则有很多文件需要更改。实际上,取决于您添加到项目中的内容,可能还有更多。这是更改原始项目的指南。
在应用程序根目录中
在app.json
中将name
和displayName
更改为"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 / app / BUCK
将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.java
中的MainApplication.java
和android/app/src/main/java/com/myawesomeproject
复制到最近创建的android/app/src/main/java/com/awesome/project
文件夹中。
在MainActivity.java
和MainApplication.java
的内部,将文件包从package com.myawesomeproject;
保留到package com.awesome.project;
还在MainActivity.java
中将getComponentName()
函数返回的字符串重命名为"project"
手动操作有点麻烦,但是在Xcode中更改包ID和应用程序名称很简单。我不会像您刚刚专门针对Android那样执行Xcode程序。