我正在为Android开发应用程序并使用Proguard来混淆代码.
目前我正在使用ProGuard配置:
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class com.android.vending.licensing.ILicensingService
Run Code Online (Sandbox Code Playgroud)
要维护布局XML上使用的自定义组件名称:
-keep public class custom.components.**
Run Code Online (Sandbox Code Playgroud)
要删除调试日志:
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** v(...);
}
Run Code Online (Sandbox Code Playgroud)
为了避免更改布局onClick上调用的方法名称:
-keepclassmembers class * {
public void onClickButton1(android.view.View);
public void onClickButton2(android.view.View);
public void onClickButton3(android.view.View);
}
-keepclasseswithmembernames class …
Run Code Online (Sandbox Code Playgroud) 我正在使用IntelliJ并在调试模式下运行Proguard,但我似乎无法摆脱警告,例如:
ProGuard: [MyApplication] Warning: can't write resource [META-INF/MANIFEST.MF]
(Duplicate zip entry [android-support-v13.jar:META-INF/MANIFEST.MF])
Run Code Online (Sandbox Code Playgroud)
这个项目有几个模块,android-support-v13.jar
正在其中2个模块中使用.我认为这是问题所以我从libs文件夹中删除了该库,将其添加为项目库并将依赖项添加到两个模块中.这没有解决任何问题,警告仍然存在,我不明白为什么.
我知道这些警告不会影响任何东西,但干净的构建是一个快乐的构建!
我正在尝试配置proguard并遇到一些按优先级排序的问题:
我收到了重复拉链的警告,无法修复它.我在"libs"目录中使用外部库和2个库项目(一个库项目有一个外部库 - 只添加到项目一次),它们只添加到项目一次.我试图将我的外部罐子移动到另一个目录,即"lib" - 只是重命名,因为一些用户已经设法解决它,但它没有帮助我.另一种方法是尝试将custom_rules实现到基本build.xml,因为它可以帮助一些用户避免这些警告.但是它的一切对我没有帮助,我该如何解决呢?日志:
ProGuard: Warning: can't write resource [META-INF/MANIFEST.MF] (Duplicate zip entry [jackson-annotations-2.1.4.jar:META-INF/MANIFEST.MF])
ProGuard: Warning: can't write resource [META-INF/MANIFEST.MF] (Duplicate zip entry [android-support-v4.jar:META-INF/MANIFEST.MF])
ProGuard: Warning: can't write resource [META-INF/MANIFEST.MF] (Duplicate zip entry [google-analytics-v2.jar:META-INF/MANIFEST.MF])
ProGuard: Warning: can't write resource [META-INF/MANIFEST.MF] (Duplicate zip entry [jackson-core-2.1.4.jar:META-INF/MANIFEST.MF])
ProGuard: Warning: can't write resource [META-INF/MANIFEST.MF] (Duplicate zip entry [httpclientandroidlib-1.1.2.jar:META-INF/MANIFEST.MF])
ProGuard: Warning: can't write resource [META-INF/MANIFEST.MF] (Duplicate zip entry [deviceprint-lib-1.0.0.jar:META-INF/MANIFEST.MF])
Run Code Online (Sandbox Code Playgroud)最后一件事是签名apk建设期间的一些注意事项
ProGuard: Note: com.google.analytics.tracking.android.AdHitIdGenerator: can't find dynamically referenced class com.google.ads.AdRequest
ProGuard: Note: the configuration …
Run Code Online (Sandbox Code Playgroud)