繁体   English   中英

未解决的 class 名称 proguard-rules Android Studio 4.0

[英]Unresolved class name proguard-rules Android Studio 4.0

当我更新到 Android Studio 4.0 proguard-rules 时,它显示警告Unresolved class name 下面是示例,但我确定它仍然警告我项目中存在的 class。

-keep class com.squareup.haha.** { *; }
-keep class com.squareup.leakcanary.** { *; }

如果我从**更改为*这个警告就消失了。

-keep class com.squareup.haha.* { *; }
-keep class com.squareup.leakcanary.* { *; }

有人得到这个吗? 我应该忽略此警告还是 Android Studio 4.0 的错误?

更新

我发现它的错误,它已经分配但没有解决https://issuetracker.google.com/issues/153616200

七月更新

Google 团队已经分析并增加了这个 bug,可能与更新版本的 R8 有关。

八月更新

AS 4.2 Canary 9中已修复

检查这个问题: https://issuetracker.google.com/issues/147802433

`如果你右键点击错误,有选项“suppress for statement”,然后AS添加一个注释,例如:

noinspection ShrinkerUnresolvedReference

-保持 class 不存在。

有了这个评论,“not.existing”就没有错误了。`

在此处输入图像描述

.**替换为**作为解决方法。 没有编译错误并保留类。

-keep class com.squareup.haha** { *; }
-keep class com.squareup.leakcanary** { *; }

在此处输入图像描述

This issue is fixed in Android Studio 4.2 Canary 8. Please find the release notes here https://androidstudio.googleblog.com/2020/08/android-studio-42-canary-8-available.html and check for this issue id #153616200

文件夹及其子文件。 我已经对此进行了测试:

com.xx.xx.* { *; }   

我猜它可能包含多个文件夹和子文件。 我没有测试过这个:

com.xx.xx.**.* {*;}   

代替

.**

.*.*

结果

-keep class com.squareup.haha.*.* { *; }
-keep class com.squareup.leakcanary.*.* { *; }

所有这些答案都是无意义的,因为:

LeakCanary 被添加为debugImplementation

  • release版本中不存在的类制定规则是没有意义的。
  • 混淆debug构建更没有意义。

如果您可能需要这些规则中的任何一条,则您已将其添加到错误的构建类型中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM