gpt4 book ai didi

java - 在 proguard android 中忽略警告是正确的

转载 作者:行者123 更新时间:2023-11-29 08:32:56 24 4
gpt4 key购买 nike

我开始学习 Android 版的 Proguard。经过一番阅读后,我开始尝试在我的项目中使用。当我开始生成发布版本时,我在 android studio 终端中看到很多警告和注释。我知道这完全取决于我的代码库和我使用的第三方库。

我的问题

  • 我不明白这些警告想说什么?但是构建肯定会失败,并且无法生成 apk 文件。

  • 令人惊讶的是添加 -dontwarn packagename* 将忽略这些警告,但再次不确定这样做是否安全。 通过添加 -dontwarn 来忽略这些警告是否总是可行?

-dontwarn [class_filter]

Specifies not to warn about unresolved references and other important problems at all. The optional filter is a regular expression; ProGuard doesn't print warnings about classes with matching names. Ignoring warnings can be dangerous. For instance, if the unresolved classes or class members are indeed required for processing, the processed code will not function properly. Only use this option if you know what you're doing!

好吧,在这一点上,我真的不知道自己在做什么。如果您能帮助我理解,我将非常感激;-)。

我当前项目的 Retrofit2 警告

Warning: retrofit2.OkHttpCall: can't find referenced class javax.annotation.concurrent.GuardedBy

Warning: retrofit2.OkHttpCall:can't find referenced class javax.annotation.concurrent.GuardedBy

Warning: retrofit2.OkHttpCall: can't find referenced class javax.annotation.concurrent.GuardedBy

只需在 proguard-rules.pro 中添加此行即可关闭上述警告

-dontwarn retrofit2.**

最佳答案

所以基本上,Proguard 会映射您的代码或执行代码混淆收缩优化,在执行时删除未使用的代码...等同样,有时它会发现许多类在 import 语句或其他地方使用,但这些类实际上并不存在于包中,因此它会生成警告,因为 Proguard 无法获取某些类的引用。不过,优化是使用 Java 字节码进行的,并且由于 Android 运行在从 Java 字节码转换而来的 Dalvik 字节码上,因此某些优化效果不会那么好。所以你应该小心。

因此,在不警告中,我们只是忽略这些文件来执行混淆器操作。希望这对您来说是足够的信息。

关于java - 在 proguard android 中忽略警告是正确的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46441665/

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