Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 安卓ProGuard:can';找不到引用的类_Java_Android_Android Studio_Proguard_Android Proguard - Fatal编程技术网

Java 安卓ProGuard:can';找不到引用的类

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.?这是最常见的错误,因为“许多预编译的第三方库引用了其他未实际使用的库,因此不存在。这在调试版本中运行良好,但

在我的Android Studio项目中运行ProGuard时,我会收到如下警告:

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;