更新Android Studio 3.1后每次构建均出现警告问题求助
嘿,我来帮你解决更新Android Studio 3.1后遇到的这两个构建警告问题!
1. 处理D8的「Stripped invalid locals information from 1 method」警告
这个警告是D8(Android的新dex编译器)在处理字节码时,发现某个方法里的局部变量信息无效,自动清理掉了。一般来说它不会影响项目运行,但看着闹心的话,可以试试这些办法:
- 先排查第三方依赖:很多时候是旧版本库的字节码不规范导致的,把用到的第三方库都更新到最新稳定版试试
- 检查自定义字节码操作:如果项目里有用到ASM这类修改字节码的插件,或者自定义混淆规则,排查是不是在处理局部变量表时出了问题
- 临时抑制警告(不推荐长期使用):在项目根目录的
gradle.properties文件里添加一行:android.d8.warning.disable=InvalidLocal,就能关掉这个警告,但还是建议优先找根源解决
2. 处理「InnerClass注解缺少对应的EnclosingMember注解」警告
这个问题是因为某些类的InnerClass注解没有和对应的EnclosingMember注解配对,导致系统直接忽略了这个InnerClass注解。解决思路如下:
- 更新依赖库:大概率是第三方库的注解生成不规范,把项目里的依赖(比如注解处理器、SDK相关库)都升级到适配Android Studio 3.1的版本
- 清理构建缓存:有时候旧缓存会导致奇怪的问题,点击Android Studio顶部的
File->Invalidate Caches...-> 选择Invalidate and Restart,重启后重新构建项目 - 检查自定义内部类:如果是你自己写的内部类或者通过注解处理器生成的类,确保注解处理器配置正确,比如Room、Dagger这类框架,要对应好版本,避免生成不规范的注解信息
内容的提问来源于stack exchange,提问作者Deepanshu Sinha
相关产品推荐
相关产品推荐

