找不到引用的类/找不到引用的方法

Posted

技术标签:

【中文标题】找不到引用的类/找不到引用的方法【英文标题】:Can't find referenced class / Can't find referenced method 【发布时间】:2014-09-28 09:15:22 【问题描述】:

我以为我有点理解 proguard keep 规则,但我想我不明白!我的 proguard 配置文件中有一些如下形式的规则:

-keep class de.neom.neoreadersdk.**  *; 
-keep class org.joda.**  *; 
-keep class com.google.**  *; 
-keep class android.**  *; 

我希望上述包中的所有类和类成员都不会被混淆(即名称不会被 proguard 修改)。但是,在运行 proguard 时,我看到了以下警告(以及更多警告):

... [proguard] 警告:com.google.android.gms.internal.es:找不到 引用的方法 'void setMediaPlaybackRequiresUserGesture(boolean)' 在类 android.webkit.WebSettings

... [proguard] 警告: de.neom.neoreadersdk.Viewfinder14View$AdView:找不到引用 类 android.webkit.javascriptInterface

... [proguard] 警告: org.joda.time.DateMidnight:找不到引用的类 org.joda.convert.FromString

我应该担心这些警告吗?我应该在我的 proguard 配置中添加哪些规则来纠正这些警告提醒我注意的问题?

【问题讨论】:

【参考方案1】:

您的某些库引用了目标运行时或其他库中缺少的方法或类,例如org.joda.convert.FromString。如果你的应用程序运行良好,你可以告诉 ProGuard 没关系。例如:

-dontwarn org.joda.**

请参阅 ProGuard 手册 > 疑难解答 > Warning: can't find referenced class。

【讨论】:

嘿,埃里克,感谢您的回复。单击该链接只会将我带到 Proguard 主页?!您是否知道我如何从主页导航到该链接?

以上是关于找不到引用的类/找不到引用的方法的主要内容,如果未能解决你的问题,请参考以下文章

找不到从方法引用的类 'org.apache.http.entity.mime.content.Filebody'

找不到从方法 glt.a 引用的类 'com.google.android.gms.location.internal.ParcelableGeofence'

ADT R22 - Proguard - 找不到引用的类

Proguard:找不到引用的类

ProGuard:找不到引用的类(到 R.java)

Proguard 警告:找不到引用的类 scala。*