首页 文章

Eclipse可以生成默认的proguard配置文件

提问于
浏览
0

我正在尝试在我的Android项目上启用proguard代码混淆 . 多年来我看到很多问题,但很多线程都很陈旧,而且很难说它们对我来说有多相关 .

我无法让Eclipse生成一个默认的proguard配置文件,所以我一直试图拼凑一个并且很痛苦(我从中获得的构建几乎立即崩溃并且看起来它模糊了我使用的第三方库的一些元素在应用程序中) . 我可以理解生成的文件现在可能是完美的,但似乎它至少可以在处理项目库时采取正确的方法 .

以下是我尝试启用proguard的步骤 .

1确保我的Eclipse和Android SDK完全是最新的 .

2编辑project.properties,取消注释

proguard.config = $ /tools/proguard/proguard-android.txt:proguard-project.txt

3由于pro guard-project.txt不存在,立即构建失败 . (这是我希望它会生成一个)

4我在proguard-project.txt创建了我自己的pro guard.config文件(内容如下所示)

-injars bin / classes -outjars bin / classes-processed.jar -libraryjars libs / FlurryAgent.jar:libs / GoogleAdMobAdsSdk-4.1.1.jar -libraryjars libs / commons-codec-1.4.jar -libraryjars libs / commons-io -2.1.jar -libraryjars libs / commons-logging-1.1.1.jar -libraryjars libs / httpclient-4.1.2.jar -libraryjars libs / httpclient-cache-4.1.2.jar -libraryjars libs / httpcore-4.1.3 .jar -libraryjars libs / httpmime-4.1.2.jar -libraryjars libs / mapquest-android-sdk-1.0.3.jar -libraryjars libs / oranjestad-notifications-1.0.jar -dontwarn org.apache . ** -dontwarn org .ietf . * -keepnames org.apache . ** -dontpreverify -repackageclasses''-allowaccessmodification -optimizations!code / simplification / arithmetic -keepattributes Annotation -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 cla ss *扩展android.view.View {public(android.content.Context); public(android.content.Context,android.util.AttributeSet); public(android.content.Context,android.util.AttributeSet,int); public void set *(...); -keepclasseswithmembers class * {public(android.content.Context,android.util.AttributeSet); -keepclasseswithmembers class * {public(android.content.Context,android.util.AttributeSet,int); -keepclassmembers class * extends android.content.Context {public void *(android.view.View); public void (android.view.MenuItem); -keepclassmembers类实现android.os.Parcelable {static android.os.Parcelable $ Creator CREATOR; } -keepclassmembers class * .R $ {public static; }

5此时我的项目构建,但由于一些类别转换异常记录而失败 . 这让我回到第3步,我希望基于eclipse库依赖项生成合理的proguard-project.txt . 显然,我创造的是不对的 .

2 回答

  • 0

    更新SDK后,还必须确保更新项目本身:

    android update project --path MyAndroidProjectDirectory
    

    在最近的Android SDK中,这应该创建 proguard-project.txt .

  • 1

    除非你的设置有问题,否则创建新的Android项目,同时写下proguard配置文件 . 所以只需设置虚拟项目并检查其文件夹 - 它应该在那里 . 将其复制回当前项目并根据需要进行调整 .

相关问题