升级Android Studio至3.1.1后执行:app:transformClassesWithAndroidGradleClassShrinkerForDebug任务失败
解决Android Studio 3.1.1 + Gradle 3.0.0构建时ClassShrinker错误的方案
嘿,我之前升级AS版本后也碰到过一模一样的问题!这个错误是因为Android Studio 3.1及以上版本自带的Profiler代理组件会自动尝试注入OkHttp的拦截器来监控网络请求,但你的环境里要么没引入对应的OkHttp依赖,要么Gradle插件版本和AS版本不兼容,导致ClassShrinker在混淆/压缩时找不到这些依赖类。
下面是几个可行的解决办法,你可以根据自己的需求选:
最推荐:升级Gradle插件到和AS匹配的版本
AS 3.1.1对应的Gradle构建工具版本是3.1.1,你需要修改项目根目录下的build.gradle文件:buildscript { dependencies { classpath 'com.android.tools.build:gradle:3.1.1' // 改成这个版本 } }同时记得修改
gradle/wrapper/gradle-wrapper.properties里的Gradle版本,3.1.x插件对应Gradle 4.4版本:distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip这样插件和AS版本完全匹配,不仅能解决这个错误,还能避免后续其他兼容性问题。
快速临时解决:禁用Profiler代理注入
如果暂时不想升级Gradle插件,你可以直接关闭Profiler的自动注入功能,在app模块的build.gradle里添加配置:android { // 其他配置... profiling { enabled false } }这样Profiler就不会加载那些OkHttp拦截器了,错误自然消失,但代价是你会失去Profiler的网络请求监控功能。
保留Profiler功能:添加对应的OkHttp依赖
如果你需要用Profiler的网络监控,那就确保项目里引入了对应的OkHttp库:- 如果你用的是OkHttp3:
implementation 'com.squareup.okhttp3:okhttp:3.12.13' // 选一个稳定版本 - 如果你用的是OkHttp2:
implementation 'com.squareup.okhttp:okhttp:2.7.5'
引入后ClassShrinker就能找到对应的
Interceptor类,错误就会消失。- 如果你用的是OkHttp3:
内容的提问来源于stack exchange,提问作者nhoxbypass
相关产品推荐
相关产品推荐

