React Native应用Expo模拟器正常,发布Play Store后Google API失效崩溃求助
React Native Expo应用Google Play发布后闪退(API Key问题)
应用在Expo的Android Studio模拟器上运行正常,但发布至Google Play Store后直接闪退,堆栈跟踪显示
RuntimeException API key not found,提示需检查AndroidManifest.xml的<application>元素中是否存在meta-data android:name="com.google.android.geo.API_KEY"且配置正确密钥。
用户疑问:
- 若API密钥存在问题,为何在模拟器上能正常运行?
- 应编辑哪个AndroidManifest.xml文件?当前存在20个同名文件,例如
...\node_modules\react-native-maps\android\src\main\AndroidManifest.xml、...\node_modules\react-native\ReactAndroid\src\androidTest\AndroidManifest.xml等。
疑问1解答
- 本地模拟器属于调试环境,Google Maps相关服务会开启宽松校验机制:要么跳过严格的密钥验证,要么使用Expo内置的测试密钥临时兼容,所以不会触发闪退。
- 发布到Google Play后进入生产环境,Google会强制校验API密钥的有效性,包括密钥是否绑定了应用的生产签名SHA-1、包名是否匹配等,一旦不满足条件就直接抛出异常导致闪退。
疑问2解答
你只需要编辑项目根目录下的android/app/src/main/AndroidManifest.xml,这是唯一会被打包进生产APK的配置文件。其他node_modules里的都是依赖库自带的配置,修改它们不仅会被后续依赖更新覆盖,也不属于你的项目自定义配置,完全没必要碰。
具体操作:
- 打开该文件,定位到
<application>标签内部 - 添加或修正以下代码块:
<meta-data android:name="com.google.android.geo.API_KEY" android:value="你的Google Maps API密钥" />
- 额外注意:要确保你的API密钥在Google Cloud控制台已正确配置——必须绑定应用的生产签名SHA-1值和正式包名,否则即使配置了密钥,生产环境依然会校验失败。
内容的提问来源于stack exchange,提问作者Rasmus
相关产品推荐
相关产品推荐

