11

我想用 Proguard 编译我的 Android 项目和一些额外的 Android 库项目。事实上,大部分代码和资源都在这些库中。

我已经在主项目的 project.properties 中添加了行“proguard.config=proguard.cfg”,我已经配置了 cfg 文件(-libraryjars ..\libs)。然后 - 右键单击​​,Android 工具 -> 导出签名的应用程序包。ADT 编译项目以供发布,但应用程序在第一次启动时崩溃:当我从日志中读取时,这是因为资源指针错误。

我反编译了项目,发现很奇怪:如果我在库中声明资源,那么它上面的资源指针就变成了0。

当我将行“proguard.config=proguard.cfg”添加到我所有的 Android 库项目的 project.properties 中时,问题并没有消失。

有什么解决办法吗?

编辑:查看 proguard.cfg 的片段:

-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !

-printusage unused.txt
-optimizationpasses 2
-printmapping mapping.txt
# -overloadaggressively
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-dump class_files.txt
-printseeds seeds.txt

-libraryjars ..\libs
4

2 回答 2

1

你确定你有最新的工具吗?像 Eclipse Indigo、ADT v16.0.1 和 proguard 4.7?在更新到最新工具之前,我也遇到了问题。

于 2012-02-16T11:02:55.457 回答
1

您如何包含/引用您的 Android 库项目?如果我没看错,您将它们添加为罐子吗?如果是这样,您确实可能会在图书馆项目提供的资源方面遇到一些麻烦。

如果我是对的,请尝试:

使用项目设置并在那里添加您的库项目。不要为此使用一些导出的罐子。Android 库项目的工作方式与普通 java 库的工作方式不同。

于 2012-02-21T12:47:21.373 回答