未解析的类名proguard规则Android Studio 4.0
当我更新到Android Studio 4.0 proguard rules时,它会显示警告未解析的类名proguard规则Android Studio 4.0,android,proguard,android-studio-4.0,Android,Proguard,Android Studio 4.0,当我更新到Android Studio 4.0 proguard rules时,它会显示警告未解析的类名。下面是一个例子,但我确信它仍然在我的项目中警告exist类 -keep class com.squareup.haha.** { *; } -keep class com.squareup.leakcanary.** { *; } 如果我从**更改为*此警告将消失 -keep class com.squareup.haha.* { *; } -keep class com.squareup
未解析的类名
。下面是一个例子,但我确信它仍然在我的项目中警告exist类
-keep class com.squareup.haha.** { *; }
-keep class com.squareup.leakcanary.** { *; }
如果我从**
更改为*
此警告将消失
-keep class com.squareup.haha.* { *; }
-keep class com.squareup.leakcanary.* { *; }
有人知道这个吗?我应该忽略这个警告还是Android Studio 4.0的bug
更新
我发现这是一个bug,它已经分配了,但还没有解决
7月更新
谷歌团队已经分析并增加了这个bug的隐秘性,它可能与R8的更新版本有关
八月更新
固定在中为4.2金丝雀9
检查此问题:
`如果右键单击error,则会出现选项“suppress for statement”,在该选项之后,AS会添加注释,例如:
无检查收缩RunResolvedReference
-保持类不存在
有了这个注释,“not.existing”就没有错误了`
更换
.**
与
结果
-keep class com.squareup.haha.*.* { *; }
-keep class com.squareup.leakcanary.*.* { *; }
文件夹及其子文件。我已经对此进行了测试:
com.xx.xx.* { *; }
com.xx.xx.**.* {*;}
我猜它可能包含多个文件夹和子文件。我没有测试过这个:
com.xx.xx.* { *; }
com.xx.xx.**.* {*;}
这个问题在安卓Studio 4.2金丝雀8中修复。请在此处找到发行说明并检查此问题id#153616200将
**
替换为**
作为解决方法。没有编译错误,并且保留了类
-keep class com.squareup.haha** { *; }
-keep class com.squareup.leakcanary** { *; }
所有这些答案都毫无意义,因为: LeakCanary被添加为
debugImplementation
- 为
版本中不存在的类设置规则是没有意义的release
- 混淆
构建就更没有意义了debug
如果您可能需要这些规则中的任何一条,那么您将其添加到了错误的生成类型。实际上,我们只需要
noinspection
当库发生更改且类不存在,但某些类和模型存在时,但安卓studio 4.0仍然表示未解决此问题。我认为应该是bug,而不是通过“suppress for statement”来修复。这不是解决方案亲爱的,你也可以通过删除单星**替换为*,但这不是解决这个bug的方法。未解决的类名错误现在消失..**表示目录和所有子目录,递归..**仅指目录及其直接子目录。它们不是等价的,这不是一个解决方案。如果交通信号灯挂在红色上,你可以改为挂在橙色或绿色上。没有人会抱怨(一段时间),但这并没有解决。在某些交叉点上,它可能有效,在其他交叉点上,您将导致崩溃。将其添加为答案,并将其标记为已接受