Android:proguard并没有混淆源代码

时间:2013-02-01 15:28:59

标签: android proguard

我在project.properties中启用了proguard:

proguard.config = proguard.cfg

我的proguard.cfg不会禁用混淆。但没有什么是混淆的。

我使用

运行项目构建

蚂蚁释放。

任何铃声响起?


  

- 优化通过5   -dontusemixedcaseclassnames   -dontskipnonpubliclibraryclasses   -dontpreverify   -verbose   -optimizations!code / simplifiedification / arithmetic,!field / ,! class / merge /

     

-keep public class * extends android.app.Activity   -keep public class *扩展android.app.Application   -keep public class *扩展android.app.Service   -keep public class *扩展了android.content.BroadcastReceiver   -keep public class *扩展了android.content.ContentProvider   -keep public class * extends android.app.backup.BackupAgentHelper   -keep public class * extends android.preference.Preference   -keep public class com.android.vending.licensing.ILicensingService

     

-keepclasseswithmembernames class * {       原生的}

     

-keepclasseswithmembers class * {       public(android.content.Context,android.util.AttributeSet); }

     

-keepclasseswithmembers class * {       public(android.content.Context,android.util.AttributeSet,int); }

     

-keepclassmembers class * extends android.app.Activity {public void *(android.view.View); }

     

-keepclassmembers枚举* {       public static * [] values();       public static * valueOf(java.lang.String); }

     

-keep class *实现android.os.Parcelable {public static final android.os.Parcelable $ Creator *; }


3 个答案:

答案 0 :(得分:1)

您应该确保为Android SDK配置了项目:

android update project -p MyProjectDirectory

从Android SDK r20开始,ProGuard配置文件分为几个部分,在project.properties中指定:

proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

特定于项目的简短配置在proguard-project.txt中定义(不再在proguard.cfg中,就像在早期版本的SDK中一样)。在这方面,SDK文档可能不完全是最新的。

当您运行ant release时,您应该会看到ProGuard的一些日志输出。

答案 1 :(得分:1)

这比我想象的要简单得多:我们(在我们的manifest.xml文件中)启用了

android:debuggable="true"

卫生署。

答案 2 :(得分:1)

<谢谢@Thanks Danail,今天我刚刚解决了这个问题。正在详细阐述

<强> android:debuggable 是否可以调试应用程序,即使在用户模式下在设备上运行 - 如果可以,也可以 "true" ,如果不是,则为“false”。默认值为“false”。

有关详细信息,请访问

  

http://www.vogella.com/tutorials/AndroidDebugging/article.html