升级com.google.android.gms:play-services-ads至22.0.0构建失败求助
解决play-services-ads 22.0.0构建时AsmClassesTransform的ArrayIndexOutOfBoundsException错误
以下是针对性的修复步骤,按顺序尝试:
升级Desugar工具版本
你当前使用的desugar_jdk_libs:2.0.3版本较旧,与play-services-ads 22.0.0的字节码处理逻辑不兼容。将其升级到最新稳定版,比如:coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:3.0.4'升级Android Gradle Plugin(AGP)和Gradle版本
play-services-ads 22.0.0依赖较新的AGP特性,旧版本AGP的AsmClassesTransform无法正确处理其内部类的字节码:- 在项目根目录的
build.gradle中升级AGP版本到7.4.x及以上:plugins { id 'com.android.library' version '7.4.2' apply false // 其他插件配置 } - 在
gradle/wrapper/gradle-wrapper.properties中升级Gradle版本到7.5及以上:distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
- 在项目根目录的
清理构建缓存
旧构建缓存可能残留冲突文件,执行以下命令清理后重新构建:./gradlew cleanBuildCache clean assembleDebug检查minSdkVersion配置
确保你的minSdkVersion至少为19(play-services-ads 22.0.0的最低要求),若根项目配置低于该版本,需调整至符合要求的值。临时禁用Jetifier排查(谨慎操作)
若以上步骤无效,可尝试在gradle.properties中临时禁用Jetifier,确认是否为Jetifier与Desugar的冲突导致:android.enableJetifier=false注意:禁用Jetifier可能引发其他依赖兼容性问题,仅用于排查,排查完成后建议恢复配置。
你constraints中配置的androidx.work:work-runtime:2.7.0是Android 12广告运行必需的,无需移除,问题根源不在此配置。
内容的提问来源于stack exchange,提问作者Istis
相关产品推荐
相关产品推荐

