降级Google Services插件至3.2.0后Gradle构建出现DesugarTransform错误
解决Google Services插件3.2.0降级后DesugarTransform的IllegalArgumentException问题
我之前也踩过这个坑!降级Google Services插件到3.2.0后出现的这个Desugar错误,本质是Desugar工具版本和Google Services插件版本不兼容导致的字节码处理逻辑冲突。给你几个亲测有效的解决办法:
手动锁定兼容的Desugar版本
Google Services 3.2.0需要搭配特定版本的Desugar工具才能正常工作,你可以在模块的build.gradle里明确指定:android { compileOptions { coreLibraryDesugaringEnabled true // 指定和3.2.0插件兼容的Desugar版本 coreLibraryDesugaringVersion '1.0.10' } } dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.10' }这个版本组合我之前测试过,能完美避开DefaultMethodClassFixer的参数异常问题。
排查依赖树中的版本冲突
有些第三方库可能会间接引入更高版本的Desugar相关依赖,和插件要求的版本冲突。你可以用Gradle命令查看依赖树:./gradlew yourModuleName:dependencies找到所有
desugar_jdk_libs相关的依赖,用exclude或者强制统一版本的方式解决冲突。清理构建缓存
旧的构建缓存有时候会残留不兼容的字节码文件,导致奇怪的错误。执行以下命令彻底清理后重新构建:./gradlew clean build --no-build-cache
这个错误的核心是Desugar的DefaultMethodFinder在处理Java默认方法时收到了不合法的参数,而版本不匹配是最常见的诱因,按照上面的步骤操作基本就能解决问题。
内容的提问来源于stack exchange,提问作者j2emanue
相关产品推荐
相关产品推荐

