Proguard:在Android中排除库项目

6

我有两个项目,Project_A和 Project_B。Project_B是Project_A的库项目。Project_B的libs文件夹中有外部的jar文件。

当我在Project_A上运行proguard时,会出现以下错误:

(Unknown verification type [69] in stack map frame))

这个错误涉及到一个外部JAR文件(位于Project_B的libs文件夹中)。

我正在使用Android SDK提供的标准proguard.cfg文件。

我已经尝试过“-keep class .**”,但仍然收到相同的错误。

请告诉我是否有一种方法可以排除Project_B(库项目)及其JAR文件不被混淆。我只想在Project_A上运行ProGuard,而不是在其库项目上运行。


请查看http://tools.android.com/recent/proguardimprovements,示例参见http://proguard.sourceforge.net/index.html#manual/examples.html。 - Raghunandan
1个回答

0

ProGuard需要整个类层次结构来正确处理应用程序,因此您实际上不能省略库。

库代码似乎已损坏;很可能是被某个工具后处理时破坏了。一些工具无法正确更新验证信息。这些信息是可选的,但ProGuard希望它们格式正确。您应该检查是否有更高版本的库或后处理工具。


我使用了shade插件将多个jar合并成一个。但是我仍然遇到了同样的错误,ProGuard指向了一个外部库的内部类,并显示“Unknown verification type [73] in stack map frame”。 - nish1013

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接