我想用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
答案 0 :(得分:1)
您确定拥有最新的工具吗?像Eclipse Indigo,ADT v16.0.1和proguard 4.7?在更新到最新工具之前,我也遇到过问题。
答案 1 :(得分:1)
您如何包含/引用您的Android图书馆计划?如果我正确读取它,你将它们添加为jar?如果是这样,你可能会对图书馆项目提供的资源造成一些麻烦。
如果我是对的,请尝试:
使用项目设置并在那里添加您的图书馆项目。不要使用一些导出的罐子。 Android库项目的工作方式与普通的Java库不同。