Java 安卓ProGuard:can';找不到引用的类
在我的Android Studio项目中运行ProGuard时,我会收到如下警告:Java 安卓ProGuard:can';找不到引用的类,java,android,android-studio,proguard,android-proguard,Java,Android,Android Studio,Proguard,Android Proguard,在我的Android Studio项目中运行ProGuard时,我会收到如下警告: Warning: com.google.common.collect.Maps: can't find referenced class javax.annotation.Nullable 我可以用以下其中一种方法来解决这个问题: 一, 二, 解决上述警告的最佳方法是什么?变量1之间的区别是什么。和2.?这是最常见的错误,因为“许多预编译的第三方库引用了其他未实际使用的库,因此不存在。这在调试版本中运行良好,但
Warning: com.google.common.collect.Maps: can't find referenced class javax.annotation.Nullable
我可以用以下其中一种方法来解决这个问题:
一,
二,
解决上述警告的最佳方法是什么?变量1之间的区别是什么。和2.?这是最常见的错误,因为“许多预编译的第三方库引用了其他未实际使用的库,因此不存在。这在调试版本中运行良好,但在发布版本中,ProGuard需要所有库,因此它可以执行正确的静态分析。” 发件人: 因此,这个
javax.annotation.Nullable
可能不在您的项目中,但是您正在使用的库中有一些类在内部引用它们
但是,您可以通过-dontwarn javax.annotation.*
或-dontwarn com.google.common.collect.*
来避免这些警告。但是我不认为-保留类javax.annotation.*{*;}
,而且看起来不合逻辑
所以,如果你做了
-保留com.google.common.collect.*{*}
类,你可以从Proguard
执行的所有3个步骤(收缩、优化和模糊处理)中跳过这个包,根据我的理解这是有意义的。别忘了添加包
-keep class com.package_name.** { *; }
请改用可为null的支持库:
import android.support.annotation.Nullable;
显示您的
build.gradle
文件
-keep class com.package_name.** { *; }
import android.support.annotation.Nullable;