在React Native中更改Android的包名称

时间:2016-05-23 11:34:39

标签: android react-native react-native-android

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

更改此软件包名称的最佳方法是什么,例如:com.mycompany.myapp

我尝试在AndroidManifest.xml中更改它,但它产生了其他错误,所以我假设它不是那样。

有什么想法吗?

26 个答案:

答案 0 :(得分:259)

我改变了项目'子文件夹名称来自:" android / app / src / main / java / MY / APP / OLD_ID / " to:" android / app / src / main / java / MY / APP / NEW_ID / "

然后手动切换旧的和新的包ID:

在: 机器人/应用/ SRC /主/爪哇/ MY / APP / NEW_ID / MainActivity.java

package MY.APP.NEW_ID;

android / app / src / main / java / MY / 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 / BUCK 中:

android_build_config(
  package="MY.APP.NEW_ID"
)
android_resource(
  package="MY.APP.NEW_ID"
)

摇篮'最后清理(在 / android 文件夹中):

./gradlew clean

答案 1 :(得分:61)

我使用 react-native-rename npm包。

使用

安装
npm install react-native-rename -g

然后从React Native项目的根目录执行以下

react-native-rename "MyApp" -b com.mycompany.myapp

react-native-rename on npm

答案 2 :(得分:9)

要将软件包名称从com.myapp更改为:com.mycompany.myapp,例如,

  1. 对于react应用的iOS应用,请在常规下使用xcode-
  2. 对于android应用,在模块级别打开build.gradle。 android / app文件夹中的一个。您会发现

    ... defaultConfig { applicationId com.myapp ... } ...

将“ com.myapp”更改为您所需的任何内容。

希望这会有所帮助。

答案 3 :(得分:7)

您可以简单地使用react-native-rename npm软件包。

使用安装

npm install react-native-rename -g

然后从React Native项目的根目录执行以下操作

react-native-rename "MyApp" -b com.mycompany.myapp

react-native-rename on npm

但是请注意,此lib删除了您的MainActivity.javaMainApplication.java。 更改软件包名称之前,请从这两个文件进行备份,更改软件包名称后,只需将其放回原处即可。这个解决方案对我有用

更多信息: react-native-rename

答案 4 :(得分:6)

如果您使用的是Android Studio -

com.myapp更改为com.mycompany.myapp

  1. android/app/src/main/java下创建新的包层次结构com.mycompany.myapp

  2. 使用Android studio GUI将所有课程从com.myapp复制到com.mycompany.myapp

  3. Android studio将负责为所有复制的类添加合适的包名称。如果您有一些自定义模块并且不想手动替换所有.java文件,这将非常有用。

  4. 更新android/app/src/main/AndroidManifest.xmlandroid/app/build.gradle(将com.myapp替换为com.mycompany.myapp

  5. 同步项目(gradle build)

答案 5 :(得分:6)

转到Android工作室

右键单击您的包裹(最可能是com) - >折射器 - >重命名 - >在对话框中输入新的包名称 - >做折射器

它会在任何地方重命名您的包名称。

答案 6 :(得分:6)

初始化脚本会根据您提供的名称为Android生成唯一标识符(例如com.acmeapp代表AcmeApp)。

您可以通过在android/app/build.gradle中查找applicationId键来查看生成的名称。

如果您需要更改该唯一标识符,请按照以下说明立即进行操作:

/android文件夹中,将所有出现的com.acmeapp替换为com.acme.app

然后使用以下命令更改目录结构:

mkdir android/app/src/main/java/com/acme

mv android/app/src/main/java/com/acmeapp android/app/src/main/java/com/acme/app

应用标识符中的每个点都需要一个文件夹级别。

来源:https://blog.elao.com/en/dev/from-react-native-init-to-app-stores-real-quick/

答案 7 :(得分:3)

我有一个基于@Cherniv答案的解决方案(适用于我的macOS)。两个不同之处:我在java文件夹中有一个Main2Activity.java,我做同样的事情,而且我不打扰调用./gradlew clean,因为似乎反应原生包装器会自动执行此操作。

无论如何,我的解决方案做了切尔诺夫的工作,除了我为它制作了一个bash shell脚本,因为我使用一组代码构建多个应用程序,并且希望能够在运行我的npm脚本时轻松更改包名称

这是我使用的bash脚本。您需要修改要使用的packageName,并添加您想要的任何其他内容......但这是基础知识。您可以创建.sh文件,授予权限,然后从您运行react-native的同一文件夹中运行它:

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

免责声明:您需要首先在java文件底部附近编辑MainApplication.java的注释。它在评论中有“包”字样。由于脚本的工作方式,它需要带有“package”一词的任何行并替换它。因此,此脚本可能无法进行验证,因为在其他地方可能会使用相同的单词。

第二个免责声明:前3个sed命令从名为javaFiles的目录编辑java文件。我自己创建了这个目录,因为我想从那里复制一组java文件(因为我将来可能会向它添加新包)。你可能想要做同样的事情。因此,从java文件夹中复制所有文件(通过其子文件夹查找实际的java文件)并将它们放在一个名为javaFiles的新文件夹中。

第三免责声明:您需要编辑packageName变量,使其与脚本顶部和底部的路径一致(com.MyWebsite.MyAppName to com / MyWebsite / MyAppName)

答案 8 :(得分:3)

最简单的一个:

Row

答案 9 :(得分:3)

使用 npx react-native-rename <newName>

带有自定义的捆绑包标识符(仅限Android。对于iOS,请使用Xcode)

$ npx react-native-rename <newName> -b <bundleIdentifier>

首先,切换到新分支(可选,但推荐)

$ git checkout -b rename-app

然后,重命名您的应用 $ npx react-native-rename“ Travel App”

带有自定义的捆绑包标识符

$ npx react-native-rename "Travel App" -b com.junedomingo.travelapp 

更改名称后,请确保进入android文件夹并运行gradlew clean。然后返回主项目并运行npx react-native run-android

另外,如果您在先前的项目中有google-services.json文件,请相应地更改为新的文件...然后您就可以开始了:)

在此处https://github.com/junedomingo/react-native-rename#readme

中查看更多

答案 10 :(得分:2)

如果您使用的是VSCodeWindows

1。按Control + Shift + F

2。用您的Package Name查找您的Replace Allnew Package Name

  1. 类型"cd android"

  2. 类型"./gradlew clean"

答案 11 :(得分:1)

在撰写此答案之日,

react-native-rename 非常适合为我的项目重命名应用程序和包标识符。

  1. 更新应用名称: npx react-native-rename "New App Label"

  2. 更新包标识符:npx react-native-rename -b "appname.example.com"

答案 12 :(得分:1)

在更改您的 React Native 包名称之前!请备份MainActivity.javaMainApplication.java 文件。因为这个库删除了你的 MainActivity.javaMainApplication.java

执行此操作后,您可以简单地使用 react-native-rename npm 包。

安装

npm install react-native-rename -g

然后从您的 React Native 项目的根目录执行以下操作

react-native-rename "new_project_name" -b com.mycompany.newprojectname

最后,您可以在 AndroidManifest.xml 中查看您的新包名称。 不要忘记在 MainActivity.javaMainApplication.java 中重命名包名称。

谢谢。

答案 13 :(得分:1)

运行此命令后:

react-native-rename "MyApp" -b com.mycompany.myapp

请确保还转到Build.gradle下的android/app/... 并按如下所示重命名应用程序ID:

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

答案 14 :(得分:1)

我使用了react-native-rename软件包。

在终端中运行命令进行安装:

thread group
      Loop controller
       Constant throughput timer
       JSR223sampler1 (sleep time 3000ms)
       JSR223sampler2 (sleep time 3000ms)
       JSR223sampler3 (sleep time 3000ms)
       JSR223sampler4 (sleep time 3000ms)
   summary report.

在您的React Native项目的根目录中,运行以下命令:

npm install react-native-rename -g

答案 15 :(得分:1)

如果您尚未在android文件夹中进行任何自定义更改,请按照以下简单步骤将您的 app name Package name 重命名您刚刚初始化项目的场景)

  1. 根据需要只需更改 name 文件中的 package.json 并保存。
  2. 删除名为android的文件夹
  3. 运行命令 react-native upgrade

注意:如评论中的ivoteje50所述,如果您已经按照官方说明生成了密钥库,请不要删除android文件夹,因为它将删除密钥库,并且您无法重新签名再次应用。

答案 16 :(得分:0)

到处重命名包名后, 来自安卓工作室。 File -> Invalidate caches/Restart 可能会修复这种类型的错误

这对我有用

答案 17 :(得分:0)

要更改包名称,您必须编辑项目中的四个文件:

 1. android/app/src/main/java/com/reactNativeSampleApp/MainActivity.java
 2. android/app/src/main/java/com/reactNativeSampleApp/MainApplication.java
 3. android/app/src/main/AndroidManifest.xml
 4. android/app/build.gradle

前两个文件的包名如下所示。

 package com.WHATEVER_YOUR_PACKAGE_NAME_IS;

将其更改为您想要的包名称。

 package com.YOUR_DESIRED_PACKAGE_NAME;

您还必须在其他 2 个文件中编辑包名称。

  android/app/build.gradle

  android/app/src/main/AndroidManifest.xml

请注意,如果您的项目中有 google-services.json 文件,那么您还必须更改该文件中的包名称。

在此之后,您必须 ./gradlew 清理您的项目。

答案 18 :(得分:0)

您可以使用react-native-rename软件包,该软件包将对

下的软件包名称进行所有必要的更改。

app / mainapplication.java

AndroidManifest.xml

,但是请确保手动更改java / com文件夹下所有文件的软件包名称。因为当我创建启动画面活动时,旧的软件包名称不会更新。

https://www.npmjs.com/package/react-native-rename

答案 19 :(得分:0)

为了换包,我搜索并尝试了很多方法,但有些方法很难,有些方法已经过时。在搜索时,我发现了一个网站,该网站讨论了一种经过测试的非常简单的方法,我个人也使用过这个方法。链接:https://www.geoclassifieds.in/2021/02/change-package-name-react-native.html

答案 20 :(得分:0)

反应 0.64 | 2021年没有世博会

让原始应用名称为:com.myApp 让新的应用程序名称:'com.newname.myApp`

  1. android\app\src\main\AndroidManifest.xml

重命名xml属性:`package="com.newname.myApp"


  1. android\app\src\main\java\com\[yourAppName]\MainActivity.java

将第一行从 package com.myApp; 重命名为 package com.newname.myApp;


  1. android\app\src\main\java\com\[yourAppName]\MainApplication.java

将第一行重命名为 package com.newname.myApp;

在课堂private static void initializeFlipper 重命名这一行:

Class<?> aClass = Class.forName("com.myApp.ReactNativeFlipper");

Class<?> aClass = Class.forName("com.newname.myApp.ReactNativeFlipper");


  1. android\app\build.gradle

defaultConfig 重命名 applicationId

到“com.newname.myApp”


  1. 在命令行上运行:

      $ npx react-native start
      $ npx react-native run-android
    

答案 21 :(得分:0)

非常简单的方法:

cd /your/project/dir

运行此命令:

grep -rl "com.your.app" . | xargs sed -i 's/com.your.app/com.yournew.newapp/g'

重命名您的文件夹

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

更改为

android/app/src/main/java/com/yournew/newapp

答案 22 :(得分:0)

仅使用我的IDE的搜索和替换工具即可达到目的。

答案 23 :(得分:0)

转到Android Studio,打开应用,右键单击Java并选择 新建,然后打包。

提供所需的名称(例如com.something)。

将文件从另一个程序包(要重命名)移动到新程序包。删除旧软件包。

在编辑器中转到您的项目,并使用快捷方式搜索所有文件(在Mac上为shift cmd F)。键入旧软件包的名称。将所有引用更改为新的程序包名称。

转到Android Studio,构建,清理项目,重建项目。

完成!

快乐编码:)

答案 24 :(得分:0)

在VS Code中,按Ctrl + Shift + F,然后在“查找”中输入您的旧程序包名称,然后在“替换”中输入您的新程序包。然后按“替换所有匹配项”。

绝对不是务实的方式。但是,它为我完成了窍门。

答案 25 :(得分:-5)

转到文件 android / app / src / main / AndroidManifest.xml -

更新:

元素应用程序

attr android:label

  

旧值 - android:label =“@ string / app_name”

     

新值 - android:label =“(你要放的字符串)”

元素活动

attr android:label

  

旧值 - android:label =“@ string / app_name”

     

新值 - android:label =“(你要放的字符串)”

为我工作,希望它会有所帮助。