当前位置:编程学习 > wap >>

混淆问题

-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

-libraryjars libs\alipay_msp.jar
-libraryjars libs\android-support-v4.jar
-libraryjars libs\gson-2.2.2.jar
-libraryjars libs\httpmime-4.2.2.jar
-libraryjars libs\ksoap2-android-assembly-3.0.0.jar

-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 *;
}
-dontwarn
-keep class com.google.gson.** {*;}
-keep class com.alipay.android.app.** {*;}
-keep class org.xmlpull.v1.** {*;}
-keep class android.support.v4.** {*;}
-keep class org.apache.http.entity.mime.** {*;}


[2013-07-11 16:06:04 - bitcare_assistant_efy] Proguard returned with error code 1. See console
[2013-07-11 16:06:04 - bitcare_assistant_efy] Note: there were 527 duplicate class definitions.
[2013-07-11 16:06:04 - bitcare_assistant_efy] Warning: library class android.content.res.XmlResourceParser extends or implements program class org.xmlpull.v1.XmlPullParser
[2013-07-11 16:06:04 - bitcare_assistant_efy] Warning: library class android.content.Intent depends on program class org.xmlpull.v1.XmlPullParser
[2013-07-11 16:06:04 - bitcare_assistant_efy] Warning: library class android.content.IntentFilter depends on program class org.xmlpull.v1.XmlSerializer
[2013-07-11 16:06:04 - bitcare_assistant_efy] Warning: library class android.content.IntentFilter depends on program class org.xmlpull.v1.XmlPullParser
[2013-07-11 16:06:04 - bitcare_assistant_efy] Warning: library class android.content.res.ColorStateList depends on program class org.xmlpull.v1.XmlPullParser
[2013-07-11 16:06:04 - bitcare_assistant_efy] Warning: library class android.graphics.drawable.Drawable depends on program class org.xmlpull.v1.XmlPullParser
[2013-07-11 16:06:04 - bitcare_assistant_efy] Warning: library class android.graphics.drawable.Drawable depends on program class org.xmlpull.v1.XmlPullParser
[2013-07-11 16:06:04 - bitcare_assistant_efy] Warning: library class android.graphics.drawable.Drawable depends on program class org.xmlpull.v1.XmlPullParser
[2013-07-11 16:06:04 - bitcare_assistant_efy] Warning: library class android.view.LayoutInflater depends on program class org.xmlpull.v1.XmlPullParser
[2013-07-11 16:06:04 - bitcare_assistant_efy] Warning: library class android.view.LayoutInflater depends on program class org.xmlpull.v1.XmlPullParser
[2013-07-11 16:06:04 - bitcare_assistant_efy]       You should check if you need to specify additional program jars.
[2013-07-11 16:06:04 - bitcare_assistant_efy] Warning: there were 10 instances of library classes depending on program classes.
[2013-07-11 16:06:04 - bitcare_assistant_efy]          You must avoid such dependencies, since the program classes will
[2013-07-11 16:06:04 - bitcare_assistant_efy]          be processed, while the library classes will remain unchanged.
[2013-07-11 16:06:04 - bitcare_assistant_efy] java.io.IOException: Please correct the above warnings first.
[2013-07-11 16:06:04 - bitcare_assistant_efy]  at proguard.Initializer.execute(Initializer.java:321)
[2013-07-11 16:06:04 - bitcare_assistant_efy]  at proguard.ProGuard.initialize(ProGuard.java:211)
[2013-07-11 16:06:04 - bitcare_assistant_efy]  at proguard.ProGuard.execute(ProGuard.java:86)
[2013-07-11 16:06:04 - bitcare_assistant_efy]  at proguard.ProGuard.main(ProGuard.java:492)

混淆报错,如果不使用第三方包不会报错,求解 --------------------编程问答-------------------- 这都是些神马啊? --------------------编程问答-------------------- 不懂,友情帮顶~~~~~~ --------------------编程问答-------------------- 没接过技术分,看在同党的份上给点分分 --------------------编程问答-------------------- 完全看不懂吖 --------------------编程问答-------------------- 好厉害的样子。。。 --------------------编程问答--------------------
引用 3 楼 u010427639 的回复:
没接过技术分,看在同党的份上给点分分

CUP,不用这样了吧,我可是花了300分,问题不解决是不会结贴的 --------------------编程问答-------------------- 最新情况,混淆打包成功,但是运行是报错,
好像是第三方包的问题 --------------------编程问答-------------------- http://blog.csdn.net/diruser/article/details/7969120
哎 --------------------编程问答-------------------- 三方包一般都是已经混淆过的,再混淆一遍就会出错。

不知道你有没有注意到:其他公司的代码混淆后四大组建是不混淆的,那是因为在清单文件中去使用了这些东西,如果混淆了,也会报错。

在混淆的配置文件中你也看到了,一些 keep什么的,那些就是保持不要混淆的。

知道原因之后,可以去百度 android三方包混淆,祝顺利 --------------------编程问答-------------------- 混淆代码的意思吗
我记得有人推荐,关键代码用c写
然后JNI调用,这样就可以了 --------------------编程问答--------------------
引用 2 楼 zhangzong52021 的回复:
不懂,友情帮顶~~~~~~


引用 3 楼 u010427639 的回复:
没接过技术分,看在同党的份上给点分分

哎哟,卧曹,你们怎么来技术区了? --------------------编程问答--------------------
引用 8 楼 Bumpking 的回复:
http://blog.csdn.net/diruser/article/details/7969120

这个我找到过
不过打包成功后在使用GSON的时候报错Missing type parameter
现在就卡在这
网上有人说加
-dontobfuscate 
-dontoptimize
这两句,程序是没问题了,但是完全没有混淆了 --------------------编程问答--------------------

给你顶顶算不算功劳? --------------------编程问答-------------------- 看样子,这100分要给小号了 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 15 楼 hjue的回复:

--------------------编程问答-------------------- 楼主成功把水源一大帮水人带来了这里。 --------------------编程问答--------------------
引用 12 楼 q445697127 的回复:
Quote: 引用 8 楼 Bumpking 的回复:

http://blog.csdn.net/diruser/article/details/7969120

这个我找到过
不过打包成功后在使用GSON的时候报错Missing type parameter
现在就卡在这
网上有人说加
-dontobfuscate 
-dontoptimize
这两句,程序是没问题了,但是完全没有混淆了

……加这两句不就是不混淆不优化么……
don't obfuscate
don't optimize
--------------------编程问答--------------------

看不懂 --------------------编程问答-------------------- 最新情况,打包失败提示ksoap2-android-assembly-3.0.0.jar这个包里有几个类和系统的类冲突了,谷歌的结果是删掉那几个类,
但是为什么不混淆的APK没有问题,而且别人的JAR怎么删类?



[2013-07-15 16:20:48 - bitcare_assistant_efy] ------------------------------
[2013-07-15 16:20:48 - bitcare_assistant_efy] Android Launch!
[2013-07-15 16:20:48 - bitcare_assistant_efy] adb is running normally.
[2013-07-15 16:20:48 - bitcare_assistant_efy] Performing com.bitcare.activity.VectoringActivity activity launch
[2013-07-15 16:20:49 - bitcare_assistant_efy] Automatic Target Mode: Several compatible targets. Please select a target device.
[2013-07-15 16:20:54 - bitcare_assistant_efy] Uploading bitcare_assistant_efy.apk onto device 'e34446d4'
[2013-07-15 16:20:55 - bitcare_assistant_efy] Installing bitcare_assistant_efy.apk...
[2013-07-15 16:20:58 - bitcare_assistant_efy] Success!
[2013-07-15 16:20:58 - bitcare_assistant_efy] Starting activity com.bitcare.activity.VectoringActivity on device e34446d4
[2013-07-15 16:20:58 - bitcare_assistant_efy] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.bitcare.activity/.VectoringActivity }
[2013-07-15 16:22:07 - bitcare_assistant_efy] Proguard returned with error code 1. See console
[2013-07-15 16:22:07 - bitcare_assistant_efy] Note: there were 527 duplicate class definitions.
[2013-07-15 16:22:07 - bitcare_assistant_efy] Warning: library class android.content.res.XmlResourceParser extends or implements program class org.xmlpull.v1.XmlPullParser
[2013-07-15 16:22:07 - bitcare_assistant_efy] Warning: library class android.content.Intent depends on program class org.xmlpull.v1.XmlPullParser
[2013-07-15 16:22:07 - bitcare_assistant_efy] Warning: library class android.content.IntentFilter depends on program class org.xmlpull.v1.XmlSerializer
[2013-07-15 16:22:07 - bitcare_assistant_efy] Warning: library class android.content.IntentFilter depends on program class org.xmlpull.v1.XmlPullParser
[2013-07-15 16:22:07 - bitcare_assistant_efy] Warning: library class android.content.res.ColorStateList depends on program class org.xmlpull.v1.XmlPullParser
[2013-07-15 16:22:07 - bitcare_assistant_efy] Warning: library class android.graphics.drawable.Drawable depends on program class org.xmlpull.v1.XmlPullParser
[2013-07-15 16:22:07 - bitcare_assistant_efy] Warning: library class android.graphics.drawable.Drawable depends on program class org.xmlpull.v1.XmlPullParser
[2013-07-15 16:22:07 - bitcare_assistant_efy] Warning: library class android.graphics.drawable.Drawable depends on program class org.xmlpull.v1.XmlPullParser
[2013-07-15 16:22:07 - bitcare_assistant_efy] Warning: library class android.view.LayoutInflater depends on program class org.xmlpull.v1.XmlPullParser
[2013-07-15 16:22:07 - bitcare_assistant_efy] Warning: library class android.view.LayoutInflater depends on program class org.xmlpull.v1.XmlPullParser
[2013-07-15 16:22:07 - bitcare_assistant_efy]       You should check if you need to specify additional program jars.
[2013-07-15 16:22:07 - bitcare_assistant_efy] Warning: there were 10 instances of library classes depending on program classes.
[2013-07-15 16:22:07 - bitcare_assistant_efy]          You must avoid such dependencies, since the program classes will
[2013-07-15 16:22:07 - bitcare_assistant_efy]          be processed, while the library classes will remain unchanged.
[2013-07-15 16:22:07 - bitcare_assistant_efy] java.io.IOException: Please correct the above warnings first.
[2013-07-15 16:22:07 - bitcare_assistant_efy]  at proguard.Initializer.execute(Initializer.java:321)
[2013-07-15 16:22:07 - bitcare_assistant_efy]  at proguard.ProGuard.initialize(ProGuard.java:211)
[2013-07-15 16:22:07 - bitcare_assistant_efy]  at proguard.ProGuard.execute(ProGuard.java:86)
[2013-07-15 16:22:07 - bitcare_assistant_efy]  at proguard.ProGuard.main(ProGuard.java:492)
--------------------编程问答-------------------- 如果只混淆第三方包以外的代码可行么?如果混淆出错的原因是第三方包的话~感觉像是9L说的问题啊…… --------------------编程问答--------------------
跑错地方了! --------------------编程问答-------------------- 没有人么?~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --------------------编程问答-------------------- 1. 第三方包是放在libs文件夹下么?
2. java build path中有把包加进去吗? --------------------编程问答-------------------- 3. ADT的版本是多少 --------------------编程问答--------------------
引用 24 楼 cxz003 的回复:
1. 第三方包是放在libs文件夹下么?
2. java build path中有把包加进去吗?

1.包在libs里
2.有,不混淆的包使用没有问题
引用 25 楼 cxz003 的回复:
3. ADT的版本是多少

3. ADT版本是22.0.1
--------------------编程问答--------------------
引用 26 楼 q445697127 的回复:
Quote: 引用 24 楼 cxz003 的回复:

1. 第三方包是放在libs文件夹下么?
2. java build path中有把包加进去吗?

1.包在libs里
2.有,不混淆的包使用没有问题
引用 25 楼 cxz003 的回复:
3. ADT的版本是多少

3. ADT版本是22.0.1
java build path 里把包的引用去掉 --------------------编程问答-------------------- 把第三方包里的类完整保留出来,不能混淆 --------------------编程问答--------------------
引用 27 楼 cxz003 的回复:
Quote: 引用 26 楼 q445697127 的回复:

Quote: 引用 24 楼 cxz003 的回复:

1. 第三方包是放在libs文件夹下么?
2. java build path中有把包加进去吗?

1.包在libs里
2.有,不混淆的包使用没有问题
引用 25 楼 cxz003 的回复:
3. ADT的版本是多少

3. ADT版本是22.0.1
java build path 里把包的引用去掉

我只能把“排序和导出”里的android Private Libraries去掉,不能去掉单独的那个ksoap2包引用,去掉引用后混淆包就没用了直接报错 --------------------编程问答--------------------
引用 28 楼 chzphoenix 的回复:
把第三方包里的类完整保留出来,不能混淆

我也不想混淆他,我写了这个
-keep class org.kobjects.** {*;}
-keep class org.ksoap2.** {*;}
-keep class org.kxml2.** {*;}
-keep class org.xmlpull.v1.** {*;}
保持不混淆
但是还是报错
具体错误可以看20楼 --------------------编程问答--------------------
引用 30 楼 q445697127 的回复:
Quote: 引用 28 楼 chzphoenix 的回复:

把第三方包里的类完整保留出来,不能混淆

我也不想混淆他,我写了这个
-keep class org.kobjects.** {*;}
-keep class org.ksoap2.** {*;}
-keep class org.kxml2.** {*;}
-keep class org.xmlpull.v1.** {*;}
保持不混淆
但是还是报错
具体错误可以看20楼

对,不要混淆第三方包先。 --------------------编程问答-------------------- [2013-07-11 16:06:04 - bitcare_assistant_efy]       You should check if you need to specify additional program jars.
[2013-07-11 16:06:04 - bitcare_assistant_efy] Warning: there were 10 instances of library classes depending on program classes.

首先你要check是否必要指定这些额外的jars,照提示是10个包,楼主可以的话先去掉第三方包,然后看看混淆后是否可行,我是怀疑跟第三方包无关,而是楼主本身混淆了一些不该混淆的。 --------------------编程问答--------------------
引用 32 楼 swl82560397pq 的回复:
[2013-07-11 16:06:04 - bitcare_assistant_efy]       You should check if you need to specify additional program jars.
[2013-07-11 16:06:04 - bitcare_assistant_efy] Warning: there were 10 instances of library classes depending on program classes.

首先你要check是否必要指定这些额外的jars,照提示是10个包,楼主可以的话先去掉第三方包,然后看看混淆后是否可行,我是怀疑跟第三方包无关,而是楼主本身混淆了一些不该混淆的。

去掉第三方包项目直接报错, --------------------编程问答--------------------
引用 30 楼 q445697127 的回复:
Quote: 引用 28 楼 chzphoenix 的回复:

把第三方包里的类完整保留出来,不能混淆

我也不想混淆他,我写了这个
-keep class org.kobjects.** {*;}
-keep class org.ksoap2.** {*;}
-keep class org.kxml2.** {*;}
-keep class org.xmlpull.v1.** {*;}
保持不混淆
但是还是报错
具体错误可以看20楼

-ignorewarnings  加上这个,容错 --------------------编程问答--------------------
引用 34 楼 chzphoenix 的回复:
Quote: 引用 30 楼 q445697127 的回复:

Quote: 引用 28 楼 chzphoenix 的回复:

把第三方包里的类完整保留出来,不能混淆

我也不想混淆他,我写了这个
-keep class org.kobjects.** {*;}
-keep class org.ksoap2.** {*;}
-keep class org.kxml2.** {*;}
-keep class org.xmlpull.v1.** {*;}
保持不混淆
但是还是报错
具体错误可以看20楼

-ignorewarnings  加上这个,容错

这个我加过,打包不报错,但是获取不到数据 --------------------编程问答-------------------- 给你顶下啊哈哈哈
高手们,看看我的问题吧···我的帖子有问题啊······ --------------------编程问答-------------------- HELP --------------------编程问答-------------------- 不懂,友情帮顶了。 --------------------编程问答--------------------
引用 35 楼 q445697127 的回复:
Quote: 引用 34 楼 chzphoenix 的回复:

Quote: 引用 30 楼 q445697127 的回复:

Quote: 引用 28 楼 chzphoenix 的回复:

把第三方包里的类完整保留出来,不能混淆

我也不想混淆他,我写了这个
-keep class org.kobjects.** {*;}
-keep class org.ksoap2.** {*;}
-keep class org.kxml2.** {*;}
-keep class org.xmlpull.v1.** {*;}
保持不混淆
但是还是报错
具体错误可以看20楼

-ignorewarnings  加上这个,容错

这个我加过,打包不报错,但是获取不到数据

不知道了 --------------------编程问答-------------------- 积分到手。 --------------------编程问答--------------------
引用 1 楼 ultrapro 的回复:

help --------------------编程问答-------------------- http://blog.csdn.net/chanccie/article/details/8314421 --------------------编程问答-------------------- 感觉就是这个 --------------------编程问答-------------------- o(︶︿︶)o 唉,没事顶一下 --------------------编程问答-------------------- o(︶︿︶)o 唉,没事顶一下 --------------------编程问答-------------------- dontwarn *.*
包过 --------------------编程问答--------------------
引用 46 楼 b87936260 的回复:
dontwarn *.*
包过

什么意思?
--------------------编程问答-------------------- 干掉所有警告~我用最新的sdk,混淆的时候忽略所有警告就可以了。-keep写不写都没关系,因为sdk中已经做了配置 --------------------编程问答--------------------
引用 48 楼 b87936260 的回复:
干掉所有警告~我用最新的sdk,混淆的时候忽略所有警告就可以了。-keep写不写都没关系,因为sdk中已经做了配置

关闭警告后打包没有问题,但是程序无法接受推送。 --------------------编程问答--------------------
引用 49 楼 q445697127 的回复:
Quote: 引用 48 楼 b87936260 的回复:

干掉所有警告~我用最新的sdk,混淆的时候忽略所有警告就可以了。-keep写不写都没关系,因为sdk中已经做了配置

关闭警告后打包没有问题,但是程序无法接受推送。

额,这个就不大清楚,我用的最新sdk,记得把lib改为libs,jar包不用手动导入工程 --------------------编程问答-------------------- -dontwarn 
加上这个参数看看   可以忽略警告 --------------------编程问答-------------------- 同意楼上的  加上

-dontwarn
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose

你上面的那些jar全部去掉,没那种写法 --------------------编程问答--------------------
引用 52 楼 hongbingfans 的回复:
同意楼上的  加上

-dontwarn
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose

你上面的那些jar全部去掉,没那种写法

-libraryjars libs\ksoap2-android-assembly-3.0.0.jar

-keep class com.google.gson.** {*;}
这个两个都去掉? --------------------编程问答-------------------- 楼主解决没?
楼主应该是和我一样用了ksoap又用了自带的XML,结果XmlPullParser冲突了。解决办法就是删掉ksoap不用的XmlPullParser --------------------编程问答-------------------- 具体解决办法看这个
http://blog.csdn.net/shlzxjp/article/details/8134138
结贴吧 --------------------编程问答--------------------
-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

-keep class * implements android.os.Parcelable {
   public static final android.os.Parcelable$Creator *;
}
        
-keepattributes Signature
   
-keep class com.google.gson.examples.android.model.** { *; }
-keep class com.google.gson.stream.** { *; }
-keep class * extends com.google.gson.stream.** { *; }

-keepclassmembers class * implements java.io.Serializable {
    static final long serialVersionUID;
    private static final java.io.ObjectStreamField[] serialPersistentFields;
    private void writeObject(java.io.ObjectOutputStream);
    private void readObject(java.io.ObjectInputStream);
    java.lang.Object writeReplace();
    java.lang.Object readResolve();
}

-keep public class com.google.**{*;}
--------------------编程问答-------------------- 然后如果楼主觉得上面太麻烦,用我推荐的办法。
用rar打开你现在用的ksoap.jar
直接删除org-xmlpull 整个文件夹
OK 把这个包放进去用吧!happy new year~ --------------------编程问答--------------------
引用 57 楼 llx1990 的回复:
然后如果楼主觉得上面太麻烦,用我推荐的办法。
用rar打开你现在用的ksoap.jar
直接删除org-xmlpull 整个文件夹
OK 把这个包放进去用吧!happy new year~

proguard-project.txt不用改么?
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,