Expo v49安卓开发构建中Google Maps API密钥缺失问题求助
解决Expo v49安卓开发构建中API密钥未找到的问题
以下是逐一排查和解决的步骤:
1. 确认google-services.json的有效性
- 检查文件路径:确保
google-services.json放在项目根目录,和app.config.js同级,路径./google-services.json无误 - 核对文件内容:打开文件,确认
client[0].api_key.current_key存在且是正确的Google Maps API密钥;同时检查client[0].client_info.android_client_info.package_name和你app.config.js里的android.package完全一致(大小写、拼写都不能错)
2. 验证Expo配置中的密钥配置
- 确保
android.config.googleMaps.apiKey的值和google-services.json里的密钥完全一致,没有拼写错误或多余字符 - 注意:Expo v49中安卓的Google Maps密钥配置是
config.googleMaps.apiKey,你的配置写法是对的,但要保证值正确
3. 按需配置环境区分的google-services.json
如果你的开发和生产环境用不同的配置文件,需要在app.config.js里通过环境变量切换:
export default { expo: { // ...其他配置 android: { package: 'demo', googleServicesFile: process.env.APP_VARIANT === 'development' ? './google-services-dev.json' : './google-services-prod.json', // ...其他安卓配置 } } }
同时要确保构建时APP_VARIANT变量正确传递,比如在eas.json的development profile里添加env配置,或者构建时手动指定:eas build --profile development --platform android --env APP_VARIANT=development
4. 本地预构建验证配置是否生效
运行命令生成本地安卓项目,直接检查Manifest文件:
npx expo prebuild --platform android
打开android/app/src/main/AndroidManifest.xml,查找是否存在如下meta标签:
<meta-data android:name="com.google.android.geo.API_KEY" android:value="你的API密钥"/>
如果没有这个标签,说明Expo没有正确注入配置,需要重新核对app.config.js的写法,确保符合Expo v49的规范
5. 清除缓存后重新构建
缓存可能导致旧配置残留,运行以下命令清除缓存并重新构建:
eas build --clear-cache --profile development --platform android
6. 检查Google Cloud平台的密钥设置
- 登录Google Cloud控制台,找到你的API密钥,确认已启用Google Maps Android API
- 检查密钥的限制条件:确保绑定了正确的SHA-1指纹(开发构建的SHA-1和生产构建的可能不同,需要都添加),并且包名和你
app.config.js里的android.package完全匹配
内容的提问来源于stack exchange,提问作者user42195
相关产品推荐
相关产品推荐

