升级Android Studio/AGP/JDK后构建报ASM7错误如何解决?
问题描述
- 升级Android Studio到
Android Studio Arctic Fox | 2020.3.1 Patch 3,JDK版本从1.8升级到JDK11,AGP版本升级到7.0.3 - 项目核心编译配置如下:
compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } kotlinOptions { jvmTarget = '11' }
- 构建时抛出异常:
Execution failed for task ':app:transformClassesWithParanoidForDevDebug'. > com.android.build.api.transform.TransformException: java.lang.IllegalArgumentException: Unable to read a ClassMirror for com/data/model/response/ParsingHelper$CharSequenceDeserializer This feature requires ASM7
解决方案
问题根源是项目中使用的io.michaelrocks:paranoid-gradle-plugin字符串混淆插件版本过低,0.3.2版本依赖的ASM库版本不支持JDK11编译生成的字节码格式,和AGP版本无关,按以下步骤操作即可解决:
- 升级Paranoid插件版本
打开项目根目录的build.gradle文件,将paranoid插件的依赖版本升级到0.3.7及以上:
dependencies { // 替换原来的0.3.2版本 classpath 'io.michaelrocks:paranoid-gradle-plugin:0.3.7' // 其余依赖保持不变 }
- 移除冗余的ASM依赖
打开module层级的build.gradle文件,删除如下不必要的依赖声明,应用层的ASM依赖不会影响插件运行时的ASM版本:
implementation "org.ow2.asm:asm:7.0"
- 同步Gradle后重新构建即可,不需要修改任何业务代码。
可选优化建议
- 项目中使用的
kotlin-android-extensions插件已经被官方废弃,建议迁移到View Binding或Data Binding避免后续兼容问题 - jcenter仓库已经停止维护,建议替换为mavenCentral
内容的提问来源于stack exchange,提问作者Nouman Bhatti
相关产品推荐
相关产品推荐

