M1 Mac运行React Native安卓应用报:app:processDebugManifest错误
问题原因
- 构建失败核心原因:
你使用的React Native 0.63.4配套的Gradle 6.x版本与高版本JDK(16及以上)不兼容,JDK高版本的模块化机制限制了对java.io.File私有属性的反射访问,添加react-native-firebase后依赖的编译配置进一步触发了该兼容冲突,同时旧版本react-native-reanimated也会放大该问题。 - 应用无法连接metro核心原因:
安卓模拟器/真机默认无法直接访问电脑本地的localhost服务,同时你通过Android Studio直接构建的应用未配置正确的开发服务器地址,也没有提前做ADB端口转发,导致应用和metro服务无法建立通信。
解决方案
解决构建失败问题
- 打开项目
/android/gradle.properties文件,在org.gradle.jvmargs配置的末尾追加参数--add-opens java.base/java.io=ALL-UNNAMED,修改后示例:org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 --add-opens java.base/java.io=ALL-UNNAMED - 检查react-native-reanimated版本,确保你使用的是2.2.x及以下的兼容版本,高版本reanimated不再适配React Native 0.63.x系列。
- 检查项目
/android/build.gradle中com.google.gms:google-services的版本号,不要超过4.3.10,避免该依赖拉高Gradle版本要求。 - 确认本地JAVA_HOME环境变量指向JDK 11或JDK 8,不要使用JDK 16及以上版本。
解决无法连接metro问题
- 每次启动模拟器/连接真机后,先在终端执行
adb reverse tcp:8081 tcp:8081完成端口转发。 - 打开已安装的安卓应用,摇一摇触发开发人员菜单,进入「Dev Settings」,选择「Debug server host & port for device」,填入
10.0.2.2:8081(模拟器专用)或者你的电脑局域网IP加:8081(真机用),保存后重载应用即可。 - 若要解决直接打开Android Studio找不到node的问题,可执行
sudo ln -s $(which node) /usr/local/bin/node建立软链接,后续不需要再通过终端启动Android Studio。
内容的提问来源于stack exchange,提问作者Alicklaz
相关产品推荐
相关产品推荐

