升级Android Studio 3.1后遇IOException: Failed to find byte code问题求助
解决Android Studio 3.1 + Gradle 3.1.0构建报错「Failed to find byte code」
我之前升级到Android Studio 3.1的时候也碰到过一模一样的问题,折腾了好一阵才搞定,给你几个亲测有效的解决思路:
先清缓存,大概率能解决
新版本Gradle的构建缓存有时候会和旧项目的残留文件冲突,直接彻底清理:- 执行终端命令:
./gradlew clean build --no-build-cache(Windows用户用gradlew clean build --no-build-cache) - 或者在Android Studio里点击
File > Invalidate Caches / Restart,选择「Invalidate and Restart」,等AS重启后再重新构建
- 执行终端命令:
检查第三方依赖的兼容性
很多旧的第三方库(尤其是用了字节码插桩、自定义注解处理器的库)和Gradle 3.1.0不兼容。比如某些老版本的图片加载库、路由框架,或者你自己引入的自定义Transform插件。
建议把所有依赖都升级到最新的稳定版,优先选标注支持Android Plugin 3.0+的版本。临时禁用增量编译
如果清缓存没用,可以先关闭增量编译来验证问题:
在项目根目录的gradle.properties文件里添加这两行:android.enableBuildCache=false android.enableIncrementalJavaCompilation=false然后重新构建,如果能成功,说明是增量编译的兼容性问题,后续可以等依赖库更新后再重新开启。
排查混淆规则(如果开启了混淆)
要是你的项目开启了混淆,可能是混淆规则误删了必要的类字节码。可以先把build.gradle里的minifyEnabled设为false,关闭混淆后试试构建,如果成功了,就需要检查你的混淆规则,补全第三方库的混淆配置。
如果以上方法都不行,还可以试试手动删除项目根目录下的.gradle文件夹,以及用户目录(比如C:\Users\你的用户名\.gradle或者~/Users/你的用户名/.gradle)里的缓存文件,然后重新同步项目。
内容的提问来源于stack exchange,提问作者nhoxbypass
相关产品推荐
相关产品推荐

