【发布时间】:2012-03-03 00:01:29
【问题描述】:
我想用 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
【问题讨论】:
-
为什么在库项目中需要 proguard 配置?使用的是目标项目中的 proguard 配置。
-
在库项目中添加或删除“proguard.config”都没关系。我只是为了完整的信息而谈到它。
-
发布你的 proguard 配置文件。
标签: android proguard android-library android-resources