Crashlytics Gradle插件3.0.0版本Mapping文件上传失败求助
Crashlytics Gradle插件3.0.0升级后Mapping文件上传任务失败的修复方案
问题核心
升级至Crashlytics Gradle插件3.0.0后,执行:androidApp:uploadCrashlyticsMappingFileRelease任务时,Gradle检测到该任务未声明依赖却使用了Debug任务的输出文件gmpAppId.txt,导致Release任务意外依赖Debug任务,引发执行顺序错误。
修复步骤
1. 对齐插件版本兼容性
确保项目根目录build.gradle中,Google Services插件与Crashlytics插件版本匹配(Crashlytics 3.0.0建议搭配Google Services 4.4.1及以上版本):
buildscript { dependencies { classpath 'com.google.gms:google-services:4.4.1' classpath 'com.google.firebase:firebase-crashlytics-gradle:3.0.0' } }
2. 显式绑定Release任务的正确依赖
在App模块的build.gradle中,为uploadCrashlyticsMappingFileRelease任务指定正确的Release阶段依赖,避免它读取Debug任务的输出:
tasks.named("uploadCrashlyticsMappingFileRelease") { // 绑定Release阶段的Google Services处理任务 dependsOn("processReleaseGoogleServices") // 确保在Release任务完成后再执行上传 mustRunAfter("processReleaseGoogleServices") }
3. 验证google-services.json配置
检查项目中的google-services.json文件,确认其中包含正确的Release环境配置(release节点的client_info下的mobilesdk_app_id需与Release构建的App ID一致),避免Gradle错误加载Debug环境的配置文件。
4. 清理构建缓存并重新构建
执行以下命令清理旧缓存,确保Gradle重新生成正确的任务依赖关系:
./gradlew clean ./gradlew :androidApp:uploadCrashlyticsMappingFileRelease
5. 排查自定义Gradle配置
检查项目中是否存在自定义的Gradle任务或插件,是否意外将Release任务与Debug任务建立了依赖关系,如有则移除相关关联代码。
内容的提问来源于stack exchange,提问作者Philio
相关产品推荐
相关产品推荐

