开发者

How can I exclude external .jar from obfuscation by Proguard (Android project)?

开发者 https://www.devze.com 2023-01-30 23:57 出处:网络
When I export android project with proguard.cfg, all refer开发者_如何学Pythonenced .jar files are obfuscated as well. How can I exclude some of that .jars from obfuscation?If you don\'t want to edit t

When I export android project with proguard.cfg, all refer开发者_如何学Pythonenced .jar files are obfuscated as well. How can I exclude some of that .jars from obfuscation?


If you don't want to edit the Ant script, you can add -keep options to proguard.cfg for the classes in those external jars. For instance:

-keep class othercode.** { *; }

Or with a regular expression containing a negator:

-keep class !mycode.** { *; }

The standard Ant script will still merge all referenced jars in the single output jar though.


In your config file, set up your jars as library jars instead of input jars. This leaves them untouched.

-libjars <path/to/jars>


Using proguard maven plugin I do it like that

<inclusion>
   <groupId>foo.bar</groupId>
   <artifactId>foo-bar</artifactId>
   <library>true</library>
   <filter>!META-INF/**</filter>
</inclusion>

The

<library>true</library> 

lead to the external jar merged into the final jar after the obfuscation. But this might lead to the Manifest being overwritten. I haven't figured out yet how to avoid that the best way.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号