Android库项目:模糊并保留资源

时间:2012-02-10 14:14:27

标签: android proguard android-library android-resources

我想用Proguard我的Android项目与一些额外的Android库项目进行编译。事实上,大多数代码和资源都存在于这些库中。

我在主项目的project.properties中添加了行“proguard.config = proguard.cfg”,我已经配置了cfg-file(-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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

您如何包含/引用您的Android图书馆计划?如果我正确读取它,你将它们添加为jar?如果是这样,你可能会对图书馆项目提供的资源造成一些麻烦。

如果我是对的,请尝试:

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