android studio 代码混淆错误 100

Error:Executionfailedfortask':app:transformClassesAndResourcesWithProguardForRelease'... Error:Execution failed for task ':app:transformClassesAndResourcesWithProguardForRelease'.
> java.io.IOException: Please correct the above warnings first.

设置了log输出无效
展开
 我来答
匿名用户
推荐于2017-08-31
展开全部
1,androidstudio1.3之后的版本就没有GenerateSignedAPK—RunProGuard这个选项了!要在build.grandle把minifyEnabled改成Ture就可以了!minifyEnabledtrue下面是我使用的代码:#指定代码的压缩级别-optimizationpasses5#包明不混合大小写-dontusemixedcaseclassnames#不去忽略非公共的库类-dontskipnonpubliclibraryclasses#优化不优化输入的类文件-dontoptimize#预校验-dontpreverify#混淆时是否记录日志-verbose#混淆时所采用的算法-optimizations!code/simplification/arithmetic,!field/*,!class/merging/*#保护注解-keepattributes*Annotation*#保持哪些类不被混淆#-keeppublicclass*extendsandroid.app.Fragment#如果有引用v4包可以添加下面这行-keeppublicclass*extendsandroid.support.v4.app.Fragment#忽略警告-ignorewarning#####################记录生成的日志数据,gradlebuild时在本项目根目录输出#################apk包内所有class的内部结构-dumpclass_files.txt#未混淆的类和成员-printseedsseeds.txt#列出从apk中删除的代码-printusageunused.txt#混淆前后的映射-printmappingmapping.txt#####################记录生成的日志数据,gradlebuild时在本项目根目录输出-end################################混淆保护自己项目的部分代码以及引用的第三方jar包library##########################-libraryjarslibs/xUtils-2.6.14.jar#-libraryjarslibs/alipaysdk.jar#-libraryjarslibs/alipaysecsdk.jar#-libraryjarslibs/alipayutdid.jar#-libraryjarslibs/wup-1.0.0-SNAPSHOT.jar#-libraryjarslibs/weibosdkcore.jar#三星应用市场需要添加:sdk-v1.0.0.jar,look-v1.0.1.jar#-libraryjarslibs/sdk-v1.0.0.jar#-libraryjarslibs/look-v1.0.1.jar#我是以libaray的形式引用了一个图片加载框架,如果不想混淆keep掉-keepclasscom.nostra13.universalimageloader.**{*;}#忽略警告-dontwarncom.veidy.mobile.common.**#保留一个完整的包-keepclasscom.veidy.mobile.common.**{*;}#如果引用了v4或者v7包-dontwarnandroid.support.**############混淆保护自己项目的部分代码以及引用的第三方jar包library-end###################-keeppublicclass*extendsandroid.view.View{#public(android.content.Context);#public(android.content.Context,android.util.AttributeSet);#public(android.content.Context,android.util.AttributeSet,int);#publicvoidset*();#}#保持native方法不被混淆-keepclasseswithmembernamesclass*{native;}#保持自定义控件类不被混淆#-keepclasseswithmembersclass*{#public(android.content.Context,android.util.AttributeSet);#}#保持自定义控件类不被混淆#-keepclasseswithmembersclass*{#public(android.content.Context,android.util.AttributeSet,int);#}#保持自定义控件类不被混淆#-keepclassmembersclass*extendsandroid.app.Activity{#publicvoid*(android.view.View);#}#保持Parcelable不被混淆-keepclass*implementsandroid.os.Parcelable{publicstaticfinalandroid.os.Parcelable$Creator*;}#保持Serializable不被混淆-keepnamesclass*implementsjava.io.Serializable#保持Serializable不被混淆并且enum类也不被混淆-keepclassmembersclass*implementsjava.io.Serializable{staticfinallongserialVersionUID;privatestaticfinaljava.io.ObjectStreamField[]serialPersistentFields;!static!transient;!private;!private;privatevoidwriteObject(java.io.ObjectOutputStream);privatevoidreadObject(java.io.ObjectInputStream);java.lang.ObjectwriteReplace();java.lang.ObjectreadResolve();}#保持枚举enum类不被混淆如果混淆报错,建议直接使用上面的-keepclassmembersclass*implementsjava.io.Serializable即可#-keepclassmembersenum*{#publicstatic**[]values();#publicstatic**valueOf(java.lang.String);#}-keepclassmembersclass*{publicvoid*ButtonClicked(android.view.View);}#不混淆资源类-keepclassmembersclass**.R$*{publicstatic;}#避免混淆泛型如果混淆报错建议关掉#–keepattributesSignature#移除log测试了下没有用还是建议自己定义一个开关控制是否输出日志-assumenosideeffectsclassandroid.util.Log{publicstaticbooleanisLoggable(java.lang.String,int);publicstaticintv();publicstaticinti();publicstaticintw();publicstaticintd();publicstaticinte();}
匿名用户
2017-08-22
展开全部
1,在build.grandle添加,其中规则写在proguard-rules.pro中,也可以自定义一个文件,将其代替,比如eclipse常用的proguard-project.txtbuildTypes{release{signingConfigsigningConfigs.releaseminifyEnabledtrueproguardFilesgetDefaultProguardFile(‘proguard-android.txt‘),‘proguard-rules.pro‘}}2,在proguard-rules.pro中加入以下代码,基本可以涵盖所有-optimizationpasses5#指定代码的压缩级别-dontusemixedcaseclassnames#是否使用大小写混合-dontpreverify#混淆时是否做预校验-verbose#混淆时是否记录日志-optimizations!code/simplification/arithmetic,!field/*,!class/merging/*#混淆时所采用的算法-keeppublicclass*extendsandroid.app.Activity#保持哪些类不被混淆-keeppublicclass*extendsandroid.app.Application#保持哪些类不被混淆-keeppublicclass*extendsandroid.app.Service#保持哪些类不被混淆-keeppublicclass*extendsandroid.content.BroadcastReceiver#保持哪些类不被混淆-keeppublicclass*extendsandroid.content.ContentProvider#保持哪些类不被混淆-keeppublicclass*extendsandroid.app.backup.BackupAgentHelper#保持哪些类不被混淆-keeppublicclass*extendsandroid.preference.Preference#保持哪些类不被混淆-keepclasseswithmembernamesclass*{#保持native方法不被混淆native;}-keepclasseswithmembersclass*{#保持自定义控件类不被混淆public(android.content.Context,android.util.AttributeSet);}-keepclasseswithmembersclass*{#保持自定义控件类不被混淆public(android.content.Context,android.util.AttributeSet,int);}-keepclassmembersclass*extendsandroid.app.Activity{#保持自定义控件类不被混淆publicvoid*(android.view.View);}-keepclassmembersenum*{#保持枚举enum类不被混淆publicstatic**[]values();publicstatic**valueOf(java.lang.String);}-keepclass*implementsandroid.os.Parcelable{#保持Parcelable不被混淆publicstaticfinalandroid.os.Parcelable$Creator*;}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
柳鲲鹏
2017-08-22 · TA获得超过513个赞
知道答主
回答量:190
采纳率:55%
帮助的人:7.4万
展开全部
吾正好碰到此问题,经过一番搜索,在stackoverflow找到一个牛人的办法,顺利解决。希望能对各位有所帮助:
修改proguard-project.txt,增加以下内容:
#### -- Picasso --
-dontwarn com.squareup.picasso.**

#### -- OkHttp --
-dontwarn com.squareup.okhttp.internal.**

#### -- Apache Commons --
-dontwarn org.apache.commons.logging.**

-ignorewarnings
-keep class * {
public private *;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
superxg888
2017-02-24
知道答主
回答量:1
采纳率:0%
帮助的人:1028
展开全部
我也遇到此问题了,试了一下,我的app文件夹下不是proguard-rules.txt文件,是proguard-rules.pro,所以在build.gradle里面把txt改成pro,竟然就可以了。也不知道是不是新版本的问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
文化打扁
2016-06-16
知道答主
回答量:7
采纳率:0%
帮助的人:8538
展开全部
MD,我也遇到这个问题了,你的解决没有?
追问
无意间结局了此问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式