升级Google Services至v15后部署Android应用出现异常求助
嘿,我之前在升级Google Services版本时也碰到过几乎一模一样的问题,这本质是Desugar工具和新版Google Services的字节码兼容性问题,给你几个经过验证的解决方案:
升级Desugar工具版本
旧版本的Desugar无法正确处理新版Google Services里的字节码特性(比如默认方法的新实现),你需要在项目的build.gradle中明确指定最新的Desugar依赖:android { compileOptions { coreLibraryDesugaringEnabled true // 确保开启Desugar } } dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4' // 使用最新稳定版 }这个版本的Desugar已经修复了不少字节码解析的bug,能适配v15.0.0的Google Services。
同步升级Android Gradle Plugin(AGP)
Google Services v15.0.0对AGP版本有最低要求,如果你还在用旧版AGP(比如3.x系列),肯定会出现兼容性问题。建议把AGP升级到7.x及以上:buildscript { repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:7.4.2' // 适配的AGP版本 classpath 'com.google.gms:google-services:15.0.0' } }记得同步gradle后重启Android Studio,避免缓存问题。
清理项目缓存并重新构建
旧的构建缓存经常会导致奇怪的字节码冲突,执行以下命令彻底清理:./gradlew clean ./gradlew build --refresh-dependencies或者在Android Studio里点击
File -> Invalidate Caches... -> Invalidate and Restart,强制刷新所有缓存。排查依赖冲突(重点看Guava库)
错误栈里提到了com.google.common.base.Preconditions,这是Guava的类。有时候第三方库会引入旧版本的Guava,和Google Services自带的新版Guava冲突,导致参数检查失败。你可以用./gradlew dependencies查看依赖树,找到冲突的Guava依赖,然后排除旧版本:implementation('com.google.firebase:firebase-messaging:15.0.0') { // 替换成你用的Google Services组件 exclude group: 'com.google.guava', module: 'guava' }
按照上面的步骤一步步试,应该能解决这个问题。
内容的提问来源于stack exchange,提问作者Alex Kombo

