gpt4 book ai didi

java - 安卓混淆器 : can't find referenced class

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:53:49 24 4
gpt4 key购买 nike

在我的 Android Studio 项目中运行 ProGuard 我收到这样的警告:

Warning: com.google.common.collect.Maps: can't find referenced class javax.annotation.Nullable

我可能会使用以下变体之一解决此问题:

1

-keep class com.google.common.collect.** { *; }
-dontwarn com.google.common.collect.**

2

-keep class javax.annotation.** { *; }
-dontwarn javax.annotation.**

解决上述警告的最佳方法是什么?变体 1. 和 2. 有什么区别?

最佳答案

这是最常见的错误,因为“许多预编译的第三方库引用了其他未实际使用的库,因此不存在。这在调试构建中工作正常,但在发布构建中,ProGuard 期望所有库,因此它可以执行适当的静态分析。”

发件人:http://proguard.sourceforge.net/index.html#manual/examples.html

所以,这个 javax.annotation.Nullable 可能不在您的项目中,但您使用的库有一些内部引用它们的类。

但是您可以通过 -dontwarn javax.annotation.**--dontwarn com.google.common.collect.** 来避免这些警告。但我不认为 -keep class javax.annotation.** { *; } 看起来不合逻辑。

因此,如果您执行 -keep class com.google.common.collect.** { *; 你从 Proguard 执行的所有 3 个步骤(收缩、优化和混淆)中跳过这个包,根据我的理解,这是有道理的。

关于java - 安卓混淆器 : can't find referenced class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33048819/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com