升级Android Studio至3.1.2后遇:app:transformClassesWithShrinkResForDebug任务执行失败
解决Android Studio 3.1.2中
:app:transformClassesWithShrinkResForDebug任务失败的方案 我之前升级到AS 3.1.2时也碰到过一模一样的问题,折腾了好几种方法才搞定,给你分享几个亲测有效的解决方案:
临时禁用资源压缩(快速定位问题)
先在app/build.gradle的buildTypes块里关闭资源压缩和混淆,验证是否是压缩流程导致的问题:buildTypes { debug { shrinkResources false minifyEnabled false } }同步项目后重新构建,如果能成功,那问题基本锁定在资源压缩的配置或逻辑上。
修复动态资源引用的识别问题
资源压缩会自动移除未被显式引用的资源,但如果代码里用了getResources().getIdentifier()这类动态引用资源的方式,AS可能识别不到,误删必要资源引发异常。
可以在res/raw/keep.xml里手动指定需要保留的资源:<?xml version="1.0" encoding="utf-8"?> <resources xmlns:tools="http://schemas.android.com/tools" tools:keep="@layout/dynamic_layout,@drawable/icon_dynamic" />升级Gradle插件版本
AS 3.1.2对应的Gradle插件存在一些已知bug,尝试升级到同系列的稳定版(比如3.2.0或3.3.0),修改项目根目录下的build.gradle:dependencies { classpath 'com.android.tools.build:gradle:3.2.0' }同步时AS会提示更新Gradle wrapper版本,按提示操作即可。
清理缓存并彻底重构
缓存文件损坏也是这类问题的常见诱因:- 点击AS菜单栏
File > Invalidate Caches / Restart,选择Invalidate and Restart - 手动删除项目根目录的
.gradle文件夹和app/build文件夹 - 依次执行
Build > Clean Project和Build > Rebuild Project
- 点击AS菜单栏
排查依赖库兼容性
升级AS后,部分旧依赖库可能和新Gradle插件不兼容。可以通过终端运行命令查看依赖树:# Mac/Linux ./gradlew app:dependencies # Windows gradlew.bat app:dependencies找出可能冲突的库,尝试升级到适配AS 3.1+的版本。
补充:你贴的异常信息只显示了开头部分,如果以上方法都无效,建议把完整的异常栈(尤其是
Caused by部分)贴出来,能更精准定位问题。
内容的提问来源于stack exchange,提问作者user5484179
相关产品推荐
相关产品推荐

