在React Native中更改Android的包名称
我使用react-native init MyApp
初始化新的React Native应用程序。 这创建了包含com.myapp
包的Android项目。在React Native中更改Android的包名称
什么是最好的方式来改变这个软件包的名称,例如:com.mycompany.myapp
?
我试着改变它在AndroidManifest.xml
但它创造了其他错误,所以我假设它不是这样。
有什么想法?
我从发生改变的项目”子文件夹名称: “的Android /应用/ src目录/主/ JAVA/MY/APP/OLD_ID/” 到:“的Android /应用/ src目录/主/ JAVA/MY/APP/NEW_ID/“
然后手动切换新旧包IDS:
在: 机器人/应用/ SRC /主/爪哇/ MY/APP/NEW_ID/MainActivity。 java:
package MY.APP.NEW_ID;
在机器人/应用/ SRC /主/爪哇/ MY/APP/NEW_ID/MainApplication.java:
package MY.APP.NEW_ID;
在机器人/应用/ SRC /主/ AndroidManifest.xml中 :
package="MY.APP.NEW_ID"
(可选)在机器人/应用/ BUCK:
android_build_config(
package="MY.APP.NEW_ID"
)
android_resource(
package="MY.APP.NEW_ID"
)
而且在的Android /应用/的build.gradle:
applicationId "MY.APP.NEW_ID"
摇篮”到底清洗(在/安卓文件夹):
./gradlew clean
转到文件android/app/src/main/AndroidManifest。XML -
更新:
ATTR 安卓元素应用的标签为:
原值 - 机器人:标签= “@字符串/ APP_NAME”
新值 - android:label =“(要放的字符串)”
和
ATTR 安卓元素活动的标签为:
原值 - 机器人:标签= “@字符串/ APP_NAME”
新值 - android:label =“(你想要放的字符串)”
为我工作,希望它会有所帮助。
我真的不认为这个答案应该像过去一样被低估。但是,这个答案_does_ **不是**地址在问题中提出的问题 - 如何更改包名**。但是,它回答了“如何更改启动器中显示的应用程序的标题”这一问题。这是相关的答案吗?不是真的。它是否包含有用的信息?是。因此,我建议你找到一个问题,询问有关启动器的标题,并发布你的解决方案_there_而不是在这里。 –
我有一个解决方案基于@切尔尼夫的答案(适用于macOS对我来说)。两个区别:我在java文件夹中有一个Main2Activity.java,我做同样的事情,并且我不打扰调用./gradlew clean,因为它好像是react-native packager自动执行的那样。
不管怎么说,我的解决方案并没有做切尔诺夫的工作,除了我为它制作了一个bash shell脚本,因为我使用一组代码构建了多个应用程序,并希望能够在我运行我的npm时轻松地更改包名脚本。
这是我使用的bash脚本。你需要修改你想使用的packageName,并添加你想要的任何东西......但这里有一些基础知识。您可以创建一个sh文件,给予许可,然后再从您从反应本地同一文件夹中运行它:
rm -rf ./android/app/src/main/java
mkdir -p ./android/app/src/main/java/com/MyWebsite/MyAppName
packageName="com.MyWebsite.MyAppName"
sed -i '' -e "s/.*package.*/package "$packageName";/" ./android/app/src/main/javaFiles/Main2Activity.java
sed -i '' -e "s/.*package.*/package "$packageName";/" ./android/app/src/main/javaFiles/MainActivity.java
sed -i '' -e "s/.*package.*/package "$packageName";/" ./android/app/src/main/javaFiles/MainApplication.java
sed -i '' -e "s/.*package=\".*/ package=\""$packageName"\"/" ./android/app/src/main/AndroidManifest.xml
sed -i '' -e "s/.*package = '.*/ package = '"$packageName"',/" ./android/app/BUCK
sed -i '' -e "s/.*applicationId.*/ applicationId \""$packageName"\"/" ./android/app/build.gradle
cp -R ./android/app/src/main/javaFiles/ ./android/app/src/main/java/com/MyWebsite/MyAppName
免责声明:您需要编辑附近的底部MainApplication.java的评论首先是java文件。它在评论中有'包'这个词。由于脚本的工作原理,它会在其中包含“包”一词并替换它。正因为如此,这个脚本可能不会被未来证明,因为可能有其他地方使用的同一个词。
第二个免责声明:前3个sed命令从名为javaFiles的目录编辑java文件。我自己创建了这个目录,因为我想要从那里复制一组java文件(因为我将来可能会添加新的软件包)。你可能会想要做同样的事情。因此,从java文件夹中复制所有文件(通过它的子文件夹查找实际的java文件)并将它们放在一个名为javaFiles的新文件夹中。
第三免责声明:您需要编辑packageName变量,使其与脚本顶部的路径和底部(com.MyWebsite。MyAppName to com/MyWebsite/MyAppName)
我使用react-native-rename npm包。
使用
npm install react-native-rename -g
然后从根部安装你的阵营本地项目执行以下
react-native-rename "MyApp" -b com.mycompany.myapp
这是一个简单而棘手的问题,我只需要手动更新MainApplication.java。 –
使用这种方法,它像一个魅力工作.. – FaISalBLiNK
简单,只是工程。 – BlaShadow
如果您使用的是Android工作室 -
改变com.myapp
到com.mycompany.myapp
创建采用Android工作室GUI
Android的工作室将负责把适当的包装下
android/app/src/main/java
复制从
com.myapp
所有类新包层次com.mycompany.myapp到com.mycompany.myapp
所有复制类的名称。如果您有一些自定义模块并且不想在所有.java文件中手动替换,这很有用。更新
android/app/src/main/AndroidManifest.xml
和(更换com.myapp
到com.mycompany.myapp
同步项目(gradle这个版本)
软件包名称左键点击并去重构 - >重命名选项来命名包名。 – kunal
现在最适合我的是找到并替换 – mllm
你也可以试试https://saumya.github.io/ray/articles/72/ – Andy