• [转]Android项目源码混淆问题解决方法


    解决方法也很简单,以下是我的解决方案。
    1、SDK2.2以上的直接在default.properties文件中加上proguard.config=proguard.cfg即可
    2、SDK2.2以下除了上面的设置外还需要做以下配置:
     首先从其他SDK2.2以上项目中拷出proguard.cfg文件到项目中;
     其次如果项目中没有其他 外部jar包引用的话只需在加一行-dontwarn去掉警告即可;
     如果有外部jar包引用需要加上两行


    -dontwarn
    -dontskipnonpubliclibraryclassmembers


    3、如果还是报错不能导出的话a、检查SDK路径时候包含空格;b、把-dontpreverify改为-dontoptimize

    -------------------------------------------------------------以下为proguard.cfg文件内容-----------------------
    -optimizationpasses 5
    -dontusemixedcaseclassnames
    -dontskipnonpubliclibraryclasses
    -dontpreverify
    -verbose
    -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

    -dontwarn
    -dontskipnonpubliclibraryclassmembers


    -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 * extends android.app.backup.BackupAgentHelper
    -keep public class * extends android.preference.Preference
    -keep public class com.android.vending.licensing.ILicensingService

    -keepclasseswithmembernames class * {
        native <methods>;
    }

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

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

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

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

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


    /***********************************************************

     以上内容转自:http://blog.csdn.net/qq893858710/article/details/7441218

    ************************************************************/

  • 相关阅读:
    模拟赛总结
    2018.04.06学习总结
    2018.04.06学习总结
    Java实现 LeetCode 672 灯泡开关 Ⅱ(数学思路问题)
    Java实现 LeetCode 671 二叉树中第二小的节点(遍历树)
    Java实现 LeetCode 671 二叉树中第二小的节点(遍历树)
    Java实现 LeetCode 671 二叉树中第二小的节点(遍历树)
    Java实现 LeetCode 670 最大交换(暴力)
    Java实现 LeetCode 670 最大交换(暴力)
    Java实现 LeetCode 670 最大交换(暴力)
  • 原文地址:https://www.cnblogs.com/yiki/p/2459283.html
Copyright © 2020-2023  润新知