无google-services.json与Google Play Services,crashlyticsUploadMappingFileRelease报错如何解决
解决Crashlytics无google-services.json时的"Google App ID not found"问题
我之前也遇到过类似的场景——不想依赖google-services插件和google-services.json文件,却要让Crashlytics正常上传mapping文件。其实只要手动在构建脚本里注入所需的App ID参数就行,具体步骤如下:
1. 清理不必要的插件依赖
首先检查项目级build.gradle,只保留Crashlytics的Gradle插件,移除Google Services插件的依赖:
buildscript { dependencies { // 保留Crashlytics构建插件(建议用最新稳定版) classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.9' // 删掉这行:classpath 'com.google.gms:google-services:4.4.1' } }
然后到模块级(app)的build.gradle,只应用Crashlytics插件,不要加Google Services插件:
plugins { id 'com.android.application' id 'com.google.firebase.crashlytics' // 移除这行:id 'com.google.gms.google-services' }
2. 手动指定App ID参数
在模块级build.gradle的android块里,给对应的buildType(比如release)配置Crashlytics的核心参数:
android { buildTypes { release { crashlytics { mappingFileUploadEnabled true // 确保开启mapping文件上传 // 从Firebase控制台复制你的应用ID(格式类似:1:1234567890:android:abc123def456ghi789) firebaseAppId = "你的Firebase应用ID" googleAppId = "你的Firebase应用ID" // 这里和firebaseAppId值完全一致即可 } } } }
如果想让所有buildType都生效,也可以把配置放在defaultConfig下:
android { defaultConfig { crashlytics { firebaseAppId = "你的Firebase应用ID" googleAppId = "你的Firebase应用ID" } } }
3. 可选:补充Manifest元数据
如果你的应用运行时需要初始化Crashlytics,建议在AndroidManifest.xml里添加上对应的元数据,避免运行时异常:
<meta-data android:name="com.google.firebase.firebase_app_id" android:value="你的Firebase应用ID" /> <meta-data android:name="com.google.firebase.crashlytics.mapping_file_upload_enabled" android:value="true" />
4. 验证配置
现在重新执行crashlyticsUploadMappingFileRelease任务,应该就能正常识别App ID并完成mapping文件的上传了。
小提示:Firebase应用ID可以在Firebase控制台的项目设置 → 应用页面找到,每个应用对应的"App ID"字段就是我们需要的值。
内容的提问来源于stack exchange,提问作者Lena Bru
相关产品推荐
相关产品推荐

