找不到引用的类/找不到引用的方法
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'