React native 0.61.3 android - 无法更改应用程序 ID
React native 0.61.3 android - cannot change app id
我正在将一个 rn 项目从 0.59 迁移到 0.61.3(最新),并且 npx react-native init
.
我需要更改它提供给 android 应用程序的默认应用程序 ID。为此,我做了:
- 将
manifest.xml
中的 package="com.myapp"
值更改为 package="mycomp.myapp"
- 在
app/build.graddle
中将 applicationId "com.myapp"
值更改为 applicationId "mycomp.myapp"
- 将 src 包
com/myapp/MainApplication
更改为 mycomp/myapp/MainApplication
在 _BUCK
文件中更改以下内容(不确定它到底是什么...):
android_build_config(
name = "build_config",
package = "mycomp.myapp",
)
android_resource(
name = "res",
package = "mycomp.myapp",
res = "src/main/res",
)
之后,即使 ./gradlew clean
成功,当 运行 npx react-native run-android
命令时,应用程序安装但崩溃:
2019-10-30 15:43:26.978 30576-30743/mycomp.myapp E/AndroidRuntime: FATAL EXCEPTION: create_react_context
Process: mycomp.myapp, PID: 30576
java.lang.RuntimeException: Unable to load script. Make sure you're either running a Metro server (run 'react-native start') or that your bundle 'index.android.bundle' is packaged correctly for release.
at com.facebook.react.bridge.CatalystInstanceImpl.jniLoadScriptFromAssets(Native Method)
at com.facebook.react.bridge.CatalystInstanceImpl.loadScriptFromAssets(CatalystInstanceImpl.java:227)
at com.facebook.react.bridge.JSBundleLoader.loadScript(JSBundleLoader.java:28)
at com.facebook.react.bridge.CatalystInstanceImpl.runJSBundle(CatalystInstanceImpl.java:261)
at com.facebook.react.ReactInstanceManager.createReactContext(ReactInstanceManager.java:1175)
at com.facebook.react.ReactInstanceManager.access00(ReactInstanceManager.java:125)
at com.facebook.react.ReactInstanceManager.run(ReactInstanceManager.java:951)
at java.lang.Thread.run(Thread.java:764)
我们还看到 Metro 已启动并正在侦听,但调试应用程序从未访问过它:
warn The following packages use deprecated "rnpm" config that will stop working from next release:
- react-native-orientation: https://github.com/yamill/react-native-orientation#readme
- react-native-push-notification: https://npmjs.com/package/react-native-push-notification
- react-native-sentry: https://github.com/getsentry/react-native-sentry
Please notify their maintainers about it. You can find more details at https://github.com/react-native-community/cli/blob/master/docs/configuration.md#migration-guide.
┌──────────────────────────────────────────────────────────────────────────────┐
│ │
│ Running Metro Bundler on port 8081. │
│ │
│ Keep Metro running while developing on any JS projects. Feel free to │
│ close this tab and run your own Metro instance if you prefer. │
│ │
│ https://github.com/facebook/react-native │
│ │
└──────────────────────────────────────────────────────────────────────────────┘
Looking for JS files in
/Users/thomasfetiveau/wksp_myapp/myapp-rn61/bin
/Users/thomasfetiveau/wksp_myapp/myapp-rn61
Loading dependency graph, done.
知道为什么吗?
在我的 npx react-native info
输出下面找到:
$ npx react-native info
warn The following packages use deprecated "rnpm" config that will stop working from next release:
- react-native-orientation: https://github.com/yamill/react-native-orientation#readme
- react-native-push-notification: https://npmjs.com/package/react-native-push-notification
- react-native-sentry: https://github.com/getsentry/react-native-sentry
Please notify their maintainers about it. You can find more details at https://github.com/react-native-community/cli/blob/master/docs/configuration.md#migration-guide.
info Fetching system and libraries information...
System:
OS: macOS Mojave 10.14.5
CPU: (4) x64 Intel(R) Core(TM) i7-7567U CPU @ 3.50GHz
Memory: 78.62 MB / 16.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 8.11.3 - ~/.nvm/versions/node/v8.11.3/bin/node
Yarn: 1.10.1 - /usr/local/bin/yarn
npm: 5.6.0 - ~/.nvm/versions/node/v8.11.3/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 13.0, DriverKit 19.0, macOS 10.15, tvOS 13.0, watchOS 6.0
Android SDK:
API Levels: 18, 23, 24, 25, 26, 27, 28, 29
Build Tools: 23.0.1, 23.0.3, 25.0.0, 25.0.2, 25.0.3, 26.0.0, 26.0.1, 26.0.2, 26.0.3, 27.0.3, 28.0.3, 29.0.2
System Images: a...google_apis | Google APIs Intel x86 Atom Sys..., a...google_apis | Google APIs Intel x86 Atom Sys..., a... | Intel x86 Atom_64, a...google_apis | Google APIs Intel x86 Atom Sys..., a...gle_apis | Google APIs Intel x86 Atom_64 ..., a...-28 | Intel x86 Atom, a... | Intel x86 Atom_64, a...google_apis | Google APIs Intel x86 Atom Sys..., a...-29 | Intel x86 Atom, a... | Intel x86 Atom_64, a...google_apis | Google APIs Intel x86 Atom Sys...
IDEs:
Android Studio: 3.5 AI-191.8026.42.35.5900203
Xcode: 11.0/11A420a - /usr/bin/xcodebuild
npmPackages:
react: ^16.11.0 => 16.11.0
react-native: 0.61.3 => 0.61.3
npmGlobalPackages:
create-react-native-module: 0.11.1
react-native-create-library: 3.1.2
请运行
adb reverse tcp:8081 tcp:8081
然后重新加载应用
我遇到的问题不是因为应用程序 ID 更改。这是由于使用了 react native navigation + 错误的 java 文件导入:https://github.com/wix/react-native-navigation/issues/5617
我正在将一个 rn 项目从 0.59 迁移到 0.61.3(最新),并且 npx react-native init
.
我需要更改它提供给 android 应用程序的默认应用程序 ID。为此,我做了:
- 将
manifest.xml
中的package="com.myapp"
值更改为package="mycomp.myapp"
- 在
app/build.graddle
中将 - 将 src 包
com/myapp/MainApplication
更改为mycomp/myapp/MainApplication
在
_BUCK
文件中更改以下内容(不确定它到底是什么...):android_build_config( name = "build_config", package = "mycomp.myapp", ) android_resource( name = "res", package = "mycomp.myapp", res = "src/main/res", )
applicationId "com.myapp"
值更改为 applicationId "mycomp.myapp"
之后,即使 ./gradlew clean
成功,当 运行 npx react-native run-android
命令时,应用程序安装但崩溃:
2019-10-30 15:43:26.978 30576-30743/mycomp.myapp E/AndroidRuntime: FATAL EXCEPTION: create_react_context
Process: mycomp.myapp, PID: 30576
java.lang.RuntimeException: Unable to load script. Make sure you're either running a Metro server (run 'react-native start') or that your bundle 'index.android.bundle' is packaged correctly for release.
at com.facebook.react.bridge.CatalystInstanceImpl.jniLoadScriptFromAssets(Native Method)
at com.facebook.react.bridge.CatalystInstanceImpl.loadScriptFromAssets(CatalystInstanceImpl.java:227)
at com.facebook.react.bridge.JSBundleLoader.loadScript(JSBundleLoader.java:28)
at com.facebook.react.bridge.CatalystInstanceImpl.runJSBundle(CatalystInstanceImpl.java:261)
at com.facebook.react.ReactInstanceManager.createReactContext(ReactInstanceManager.java:1175)
at com.facebook.react.ReactInstanceManager.access00(ReactInstanceManager.java:125)
at com.facebook.react.ReactInstanceManager.run(ReactInstanceManager.java:951)
at java.lang.Thread.run(Thread.java:764)
我们还看到 Metro 已启动并正在侦听,但调试应用程序从未访问过它:
warn The following packages use deprecated "rnpm" config that will stop working from next release:
- react-native-orientation: https://github.com/yamill/react-native-orientation#readme
- react-native-push-notification: https://npmjs.com/package/react-native-push-notification
- react-native-sentry: https://github.com/getsentry/react-native-sentry
Please notify their maintainers about it. You can find more details at https://github.com/react-native-community/cli/blob/master/docs/configuration.md#migration-guide.
┌──────────────────────────────────────────────────────────────────────────────┐
│ │
│ Running Metro Bundler on port 8081. │
│ │
│ Keep Metro running while developing on any JS projects. Feel free to │
│ close this tab and run your own Metro instance if you prefer. │
│ │
│ https://github.com/facebook/react-native │
│ │
└──────────────────────────────────────────────────────────────────────────────┘
Looking for JS files in
/Users/thomasfetiveau/wksp_myapp/myapp-rn61/bin
/Users/thomasfetiveau/wksp_myapp/myapp-rn61
Loading dependency graph, done.
知道为什么吗?
在我的 npx react-native info
输出下面找到:
$ npx react-native info
warn The following packages use deprecated "rnpm" config that will stop working from next release:
- react-native-orientation: https://github.com/yamill/react-native-orientation#readme
- react-native-push-notification: https://npmjs.com/package/react-native-push-notification
- react-native-sentry: https://github.com/getsentry/react-native-sentry
Please notify their maintainers about it. You can find more details at https://github.com/react-native-community/cli/blob/master/docs/configuration.md#migration-guide.
info Fetching system and libraries information...
System:
OS: macOS Mojave 10.14.5
CPU: (4) x64 Intel(R) Core(TM) i7-7567U CPU @ 3.50GHz
Memory: 78.62 MB / 16.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 8.11.3 - ~/.nvm/versions/node/v8.11.3/bin/node
Yarn: 1.10.1 - /usr/local/bin/yarn
npm: 5.6.0 - ~/.nvm/versions/node/v8.11.3/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 13.0, DriverKit 19.0, macOS 10.15, tvOS 13.0, watchOS 6.0
Android SDK:
API Levels: 18, 23, 24, 25, 26, 27, 28, 29
Build Tools: 23.0.1, 23.0.3, 25.0.0, 25.0.2, 25.0.3, 26.0.0, 26.0.1, 26.0.2, 26.0.3, 27.0.3, 28.0.3, 29.0.2
System Images: a...google_apis | Google APIs Intel x86 Atom Sys..., a...google_apis | Google APIs Intel x86 Atom Sys..., a... | Intel x86 Atom_64, a...google_apis | Google APIs Intel x86 Atom Sys..., a...gle_apis | Google APIs Intel x86 Atom_64 ..., a...-28 | Intel x86 Atom, a... | Intel x86 Atom_64, a...google_apis | Google APIs Intel x86 Atom Sys..., a...-29 | Intel x86 Atom, a... | Intel x86 Atom_64, a...google_apis | Google APIs Intel x86 Atom Sys...
IDEs:
Android Studio: 3.5 AI-191.8026.42.35.5900203
Xcode: 11.0/11A420a - /usr/bin/xcodebuild
npmPackages:
react: ^16.11.0 => 16.11.0
react-native: 0.61.3 => 0.61.3
npmGlobalPackages:
create-react-native-module: 0.11.1
react-native-create-library: 3.1.2
请运行
adb reverse tcp:8081 tcp:8081
然后重新加载应用
我遇到的问题不是因为应用程序 ID 更改。这是由于使用了 react native navigation + 错误的 java 文件导入:https://github.com/wix/react-native-navigation/issues/5617