React Native Android构建失败:react-native-google-signin资源处理错误
解决React Native 0.52.0 + react-native-google-signin v0.12.1安卓构建失败问题
兄弟,我之前也碰到过这个版本组合的坑!RN 0.52.0搭配react-native-google-signin v0.12.1很容易因为依赖版本冲突导致processReleaseResources失败,哪怕你没碰过Android代码也会踩中,给你几个亲测有效的解决步骤:
1. 统一Google Play Services依赖版本
这个是最常见的原因:两个库依赖的Google Play Services版本不一致,导致资源处理冲突。你需要在android/build.gradle里强制统一版本:
打开项目根目录下的android/build.gradle,找到allprojects块,添加以下配置:
subprojects { afterEvaluate { project -> if (project.hasProperty("android")) { android { compileSdkVersion 26 // RN 0.52.0官方推荐的编译版本 buildToolsVersion "26.0.3" } } // 强制所有Google Play Services依赖使用同一个兼容版本 project.configurations.all { resolutionStrategy.eachDependency { details -> if (details.requested.group == 'com.google.android.gms' && !details.requested.name.contains('multidex')) { details.useVersion '11.8.0' // 这个版本完美适配你的RN和google-signin版本 } } } } }
2. 清理构建缓存
有时候旧的构建缓存会导致莫名其妙的失败,彻底清理后再重新构建:
# 进入安卓项目目录 cd android # 清理gradle缓存 ./gradlew clean # 返回根目录,重新构建release版本 cd .. react-native run-android --variant=release
3. 检查基础配置是否完整
虽然你说没修改过代码,但可以快速确认以下配置是否存在(避免之前配置遗漏):
- 在
android/app/src/main/AndroidManifest.xml里确认是否有Google Play Services版本的meta-data:
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
- 确认OAuth 2.0 Client ID的配置是否正确(这个一般是运行时问题,但偶尔也会影响构建)
4. 确认本地Android SDK版本
确保你的本地Android SDK已经安装了compileSdkVersion 26和buildToolsVersion 26.0.3,可以通过Android Studio的SDK Manager检查安装。
为什么会出现这个问题?
RN 0.52.0和react-native-google-signin v0.12.1各自依赖的Google Play Services版本默认不一致,当Gradle合并依赖时会出现版本冲突,进而导致资源处理阶段(processReleaseResources)失败。哪怕你没修改代码,本地SDK更新、缓存过期都可能触发这个问题。
内容的提问来源于stack exchange,提问作者Shun Yamada
相关产品推荐
相关产品推荐

