我使用React - Native init MyApp初始化一个新的React Native应用程序。 这创建了一个带有com.myapp包的Android项目。
更改这个包名称的最佳方法是什么,例如:com.mycompany.myapp?
我尝试在AndroidManifest.xml中更改它,但它创建了其他错误,所以我假设这不是方法。
任何想法?
我使用React - Native init MyApp初始化一个新的React Native应用程序。 这创建了一个带有com.myapp包的Android项目。
更改这个包名称的最佳方法是什么,例如:com.mycompany.myapp?
我尝试在AndroidManifest.xml中更改它,但它创建了其他错误,所以我假设这不是方法。
任何想法?
当前回答
Ivan Chernykh的答案对于react-native 0.67及以下是正确的 对于react-native 0.68及以上版本的新架构,只要你遵循了Ivan Chernykh提到的步骤
对于android,你必须进入app => src => main => jni文件夹
在MainApplicationTurboModuleManagerDelegate.h
以下更改
static constexpr auto kJavaDescriptor =
"Lcom/yournewpackagename/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;";
在MainComponentsRegistry.h
constexpr static auto kJavaDescriptor =
"Lcom/yournewpackagename/newarchitecture/components/MainComponentsRegistry;";
其他回答
Ivan Chernykh的答案对于react-native 0.67及以下是正确的 对于react-native 0.68及以上版本的新架构,只要你遵循了Ivan Chernykh提到的步骤
对于android,你必须进入app => src => main => jni文件夹
在MainApplicationTurboModuleManagerDelegate.h
以下更改
static constexpr auto kJavaDescriptor =
"Lcom/yournewpackagename/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;";
在MainComponentsRegistry.h
constexpr static auto kJavaDescriptor =
"Lcom/yournewpackagename/newarchitecture/components/MainComponentsRegistry;";
这些信息对你很有帮助,所以仔细听……
After updating package name and changing files, don't forget to change in
package.json and app.json file at the root directory of your react native project
否则,您将得到下面的错误
Invariant Violation: "Your new package name" has not been registered
这里有很多糟糕的答案
如果您想更改包名称,请转到您的构建。应用程序中的Gradle
defaultConfig {
applicationId "your.new.package.name" //change this line
然后,当从命令行运行应用程序时,将新的包名作为参数传入
react-native run-android --appId your.new.package.name
没有必要重新命名整个项目
我重命名了项目的子文件夹从:“android/app/src/main/java/MY/ app/ OLD_ID/”到:“android/app/src/main/java/MY/ app/ NEW_ID/”
然后手动切换新旧包id:
: android / app / src / main / java /我的/ app / NEW_ID / MainActivity.java:
package MY.APP.NEW_ID;
在android / app / src / main / java /我的/ 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 /美元:
android_build_config(
package="MY.APP.NEW_ID"
)
android_resource(
package="MY.APP.NEW_ID"
)
Gradle'清理结束(在/android文件夹):
./gradlew clean
在VS Code中,按Ctrl + Shift + F,在“Find”中输入旧的包名,在“Replace”中输入新包名。然后按“替换所有事件”。
绝对不是务实的方式。但是,这对我来说很管用。