如何让 Proguard 忽略外部库?
我想使用 Proguard 主要是出于混淆的原因。
我的问题是我有三个库,Twitter4J 和两个路标库。当我尝试创建签名的 APK 时,这些库导致错误。为了解决这个问题,我将以下内容放入 proguard.config
文件中...
-dontwarn org.apache.commons.codec.binary.**
-dontwarn org.slf4j.**
-dontwarn com.sun.syndication.io.**
-dontwarn com.sun.syndication.feed.synd.*
虽然这消除了控制台中的错误,但当我将签名的 APK 加载到手机上时,它立即崩溃了。 DDMS 表示这是由于 Twitter4J 中未找到的类造成的。
摆脱上面的“dontwarns”并没有帮助。添加 dontshrink dontoptimise
也没有效果。
我希望 Proguard 完全忽略这些库(因为它们无论如何都是开源的)。这可能吗?
I want to use Proguard mainly for obfuscation reasons.
My problem is that I have three libraries, Twitter4J and two signpost libraries. These libraries caused errors when I tried to create an signed APK. To get over this I put the following in the proguard.config
file...
-dontwarn org.apache.commons.codec.binary.**
-dontwarn org.slf4j.**
-dontwarn com.sun.syndication.io.**
-dontwarn com.sun.syndication.feed.synd.*
While this got rid of the errors in the console, when i loaded my signed APK onto my mobile phone it instantly crashed. The DDMS said this was due to a class not found in Twitter4J.
Getting rid of the "dontwarns"
above did not help. Neither did adding dontshrink dontoptimise
.
I would like Proguard to completely ignore the libraries (as they are open source anyway). Is this possible?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
试试这个:
参见@CaspNZ 的帖子:
带有外部 jar 的 Android Proguard
Try this:
Cf post from @CaspNZ:
Android Proguard with external jar
您应该能够将以下行添加到 proguard.cfg 中以排除包(和子包)中的所有类
You should be able to add to the proguard.cfg the following lines to exclude all classes within a package (and subpackages)
我想补充一点,在添加 proguard 规则后,您应该将项目与 Gradle 文件同步,否则它们可能无法工作。
I'd like to add that you should sync your project with Gradle files after adding proguard rules, otherwise they may not work.