android - 使用 Android Proguard 编译错误 : can't find references?

标签 android proguard

我尝试使用 Proguard 将我的代码导出到 .apk 文件,但收到了很多警告。我尝试了很多解决方案,但无法修复它。有什么想法吗?

[2012-12-02 22:24:05 - com.crossrt.showtime.Main] Warning: android.support.v4.widget.ScrollerCompatIcs: can't find referenced method 'float getCurrVelocity()' in class android.widget.Scroller
[2012-12-02 22:24:05 - com.crossrt.showtime.Main] Warning: android.support.v4.widget.SearchViewCompatHoneycomb$1: can't find referenced class android.widget.SearchView$OnQueryTextListener
[2012-12-02 22:24:05 - com.crossrt.showtime.Main] Warning: android.support.v4.widget.SearchViewCompatHoneycomb$1: can't find referenced class android.widget.SearchView
[2012-12-02 22:24:05 - com.crossrt.showtime.Main] Warning: there were 242 unresolved references to classes or interfaces.
[2012-12-02 22:24:05 - com.crossrt.showtime.Main]          You may need to specify additional library jars (using '-libraryjars').
[2012-12-02 22:24:05 - com.crossrt.showtime.Main] Warning: there were 47 unresolved references to program class members.
[2012-12-02 22:24:05 - com.crossrt.showtime.Main]          Your input classes appear to be inconsistent.
[2012-12-02 22:24:05 - com.crossrt.showtime.Main]          You may need to recompile them and try again.
[2012-12-02 22:24:05 - com.crossrt.showtime.Main]          Alternatively, you may have to specify the option 
[2012-12-02 22:24:05 - com.crossrt.showtime.Main]          '-dontskipnonpubliclibraryclassmembers'.
[2012-12-02 22:24:05 - com.crossrt.showtime.Main] java.io.IOException: Please correct the above warnings first.
[2012-12-02 22:24:05 - com.crossrt.showtime.Main]   at proguard.Initializer.execute(Initializer.java:321)
[2012-12-02 22:24:05 - com.crossrt.showtime.Main]   at proguard.ProGuard.initialize(ProGuard.java:211)
[2012-12-02 22:24:05 - com.crossrt.showtime.Main]   at proguard.ProGuard.execute(ProGuard.java:86)
[2012-12-02 22:24:05 - com.crossrt.showtime.Main]   at proguard.ProGuard.main(ProGuard.java:492)

最佳答案

支持类是指不一定存在于所有 Android 版本中的运行时类和方法。他们确实以一种安全的方式处理这个问题:代码适用于所有 Android 版本——这就是他们的目的。因此,您可以在配置文件 proguard-project.txt 中告诉 ProGuard 忽略这些问题:

-dontwarn android.support.**

比较。 ProGuard 手册 > 故障排除 > Warning: can't find referenced class

关于android - 使用 Android Proguard 编译错误 : can't find references?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13670223/

相关文章:

java - Android - 如何执行回调函数来获取从图库中选择的路径图像

android - 异步任务奇怪的行为

android - 在 android studio 中导入项目时出错?

java - 我的表 (SQLite) 有什么问题吗?

java - 如何使用 Android 配置 Proguard,使其不会删除仅在 XML 布局中引用的事件处理程序方法?

android - Excel 的 Proguard 规则在发布版本上失败 - Android

android - Android Studio 中的 "Add unimplemented methods"功能

android - Proguard 保留接口(interface)方法变量名

java - 使用 throws 子句混淆方法

Android proguard 同一个 jar 指定了两次