安卓以包名作为应用的唯一id。
假设包名为com.oc.objective,以下地方需要修改。
两个java文件
- android/app/src/main/java/com/PROJECT_NAME/MainActivity.java
- android/app/src/main/java/com/PROJECT_NAME/MainApplication.java
修改第一行
package com.oc.objective;
安卓的描述文件
- android/app/src/main/AndroidManifest.xml
修改第二行,把package的至改为com.oc.objective
package="com.oc.objective"
两个打包脚本
1. android/app/BUCK
修改两个package的值package = ‘com.oc.objective‘
android_build_config(
...
package = "com.oc.objective",
)
android_resource(
...
package = "com.oc.objective",
...
)
android/app/build.gradle
修改applicationID
defaultConfig {
applicationId "com.oc.objective"
...
}
修改完成后,命令行进入android目录,执行./gradlew clean
清除缓存即可(windows上是 gradlew.bat
)
无法link
至此差不多修改完成,能够打包出正确包名的apk。不过在开发过程中,如果需要自动link原生模块,会导致命令出错无法link成功。所以还是建议按照java的规范把java文件放入包名匹配的目录中。
把两个java文件移入新创建的目录android/app/src/main/java/com/oc/objective/里面,就能够react-native link了。
- android/app/src/main/java/com/PROJECT_NAME/MainActivity.java
- android/app/src/main/java/com/PROJECT_NAME/MainApplication.java