【发布时间】:2012-04-09 12:34:48
【问题描述】:
我正在尝试通过 Package Explorer Export > Export Android Application 中的内置 Proguard 支持来使用 Proguard。主项目正在使用一个库项目,该库项目又使用 android 兼容性库,它也使用这个兼容性库本身。基本上是这样的:
BaseLibraryProject 基础活动 库:android-support-v4.jar 主要项目 使用库 BaseLibraryProject 库:android-support-v4.jar
这个应用程序在设备和模拟器上都可以正常运行。 然而,Proguard 会发出很多警告并且存在于代码 1 中。
这是 Proguard 相关列表的最后一点:
[2012-04-09 14:19:49 - MainProject] Warning: android.support.v4.widget.SearchViewCompatHoneycomb: can't find referenced class android.widget.SearchView
[2012-04-09 14:19:49 - MainProject] Warning: android.support.v4.widget.SearchViewCompatHoneycomb: can't find referenced class android.widget.SearchView
[2012-04-09 14:19:49 - MainProject] Warning: android.support.v4.widget.SearchViewCompatHoneycomb: can't find referenced class android.widget.SearchView$OnQueryTextListener
[2012-04-09 14:19:49 - MainProject] Warning: android.support.v4.widget.SearchViewCompatHoneycomb: can't find referenced class android.widget.SearchView
[2012-04-09 14:19:49 - MainProject] Warning: android.support.v4.widget.SearchViewCompatHoneycomb$1: can't find referenced class android.widget.SearchView$OnQueryTextListener
[2012-04-09 14:19:49 - MainProject] Warning: android.support.v4.widget.SearchViewCompatHoneycomb$1: can't find referenced class android.widget.SearchView
[2012-04-09 14:19:49 - MainProject] Warning: there were 131 unresolved references to classes or interfaces.
[2012-04-09 14:19:49 - MainProject] You may need to specify additional library jars (using '-libraryjars').
[2012-04-09 14:19:49 - MainProject] Warning: there were 29 unresolved references to program class members.
[2012-04-09 14:19:49 - MainProject] Your input classes appear to be inconsistent.
[2012-04-09 14:19:49 - MainProject] You may need to recompile them and try again.
[2012-04-09 14:19:49 - MainProject] Alternatively, you may have to specify the option
[2012-04-09 14:19:49 - MainProject] '-dontskipnonpubliclibraryclassmembers'.
[2012-04-09 14:19:49 - MainProject] java.io.IOException: Please correct the above warnings first.
如你所见:它找不到兼容库。
这是 proguard.cfg 文件的开头,其中包含 -libraryjars 和 -dontskipnonpubliclibraryclassmembers:
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontskipnonpubliclibraryclassmembers
-dontpreverify
-verbose
-libraryjars libs/android-support-v4.jar
没有区别。我尝试了将库添加到 BaseLibrary 项目/MainProject 的各种组合,完全限定的路径名。似乎没有任何帮助。
关于 proguard 的大多数 stackoverflow 问题似乎都与设置 Ant 相关。 知道是什么导致了这个问题,以及如何让 Proguard 处理这个使用多个库的项目吗?
提前致谢,
【问题讨论】: