如何抑制来自 ProGuard 的“也许这是程序方法”警告

Posted

技术标签:

【中文标题】如何抑制来自 ProGuard 的“也许这是程序方法”警告【英文标题】:How to suppress 'Maybe this is program method' warnings from ProGuard 【发布时间】:2011-08-29 11:03:28 【问题描述】:

我在我的 android 应用程序中使用 ProGuard,并且在构建日志中运行时收到以下警告。我添加了适当的'-keep public class com.foo.OtherClass public static *; ' 声明到我的 proguard.cfg 文件,但我仍然收到警告。我的应用程序运行良好,并且可以正确地动态访问该类。是否可以取消这些警告?

[proguard] Note: com.foo.MyClass accesses a method 'getInstance()' dynamically
[proguard]       Maybe this is program method 'com.foo.OtherClass  com.foo.OtherClass getInstance(); '

【问题讨论】:

【参考方案1】:

您可以通过在配置中明确提及方法来避免它:

-keep class com.foo.OtherClass  com.foo.OtherClass getInstance(); 

或者,您可以隐藏课堂上的注释:

-dontnote com.foo.MyClass

【讨论】:

【参考方案2】:

您可以通过添加以下行来抑制所有 Note 类型的消息:

-dontnote **

【讨论】:

即使这对我没有帮助 别忘了**。起初这让我很受挫。

以上是关于如何抑制来自 ProGuard 的“也许这是程序方法”警告的主要内容,如果未能解决你的问题,请参考以下文章

如何抑制来自 gpgme 的 valgrind 警告?

调用 Set-ExecutionPolicy 时如何抑制来自脚本的警告消息

如何在(签名的)联网应用程序运行时抑制防火墙警告(来自 Xcode)

运行单元测试时如何抑制来自 node.js 应用程序的应用程序日志消息?

使用 ProGuard 在 Android 中删除 LibGDX 日志

如何告诉 proguard 保留枚举常量和字段