【问题标题】:React native: Cannot change package name - always failing反应本机:无法更改包名称 - 总是失败
【发布时间】:2019-06-06 16:40:05
【问题描述】:

目前我面临一个问题,我已经尝试解决 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.awesome.project; 替换了package com.myawesomeproject;,并将MainActivity.javaMainApplication.java 文件从android/app/src/main/java/com/myawesomeproject/ 移动到新路径android/app/src/main/java/com/awesome/myawesomeproject/

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

但是,我仍然面临 exact 我在实际项目中遇到的相同问题。

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

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

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

我什至尝试过npm rename package 并运行了以下命令:

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

即使这样也不能解决我的问题。在运行 react-native run-android 时,我仍然完全遇到同样的错误。

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

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

【问题讨论】:

  • 你能分享你的清单文件吗?

标签: android reactjs react-native npm package-name


【解决方案1】:

重命名时需要对多个文件进行更改。所以它可能会变得棘手。使用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,它构建没有错误。

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

android_build_configandroid_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 的文件夹

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

MainActivity.javaMainApplication.java 中将文件顶部的包从package com.myawesomeproject; 重新命名为package com.awesome.project;

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

手动 iOS

手动操作有点麻烦,但是在 Xcode 中更改捆绑包 ID 和应用程序名称很简单。我不打算按照您刚刚专门针对 Android 提出的 Xcode 程序进行。

【讨论】:

  • 使用react-native-rename 很乱,手动更改“现在的android”效果很好,无论如何谢谢你拯救我的一天;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-14
  • 2020-06-30
  • 1970-01-01
  • 2014-04-21
  • 2019-03-19
  • 2022-08-16
相关资源
最近更新 更多