proguard android优化构建失败

proguard android优化构建失败,android,proguard,android-proguard,Android,Proguard,Android Proguard,我正在尝试禁用所有日志 -assumenosideeffects class android.util.Log { public static *** v(...); public static *** i(...); public static *** w(...); public static *** d(...); public static *** e(...); } 但当我开始 proguardFiles getDefaultProguardFile('prog

我正在尝试禁用所有日志

-assumenosideeffects class android.util.Log {

public static *** v(...);
public static *** i(...);
public static *** w(...);
public static *** d(...);
public static *** e(...);
}

但当我开始

          proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
构建失败 错误

com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:org.gradle.process.internal.exeception:process'command'/Library/Java/JavaVirtualMachines/jdk1.8.0_66.jdk/Contents/Home/bin/Java''以非零出口值2结束

用这个 proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard rules.pro' 它的构建但是日志是可见的

推荐的 解决方案是使用最新的编译器从源代码重新编译该类 并且不指定任何“-target”类型选项。忽视的后果 此警告表示此类上的反射操作将不正确 指示它不是内部类


未捕获的转换错误:com.android.dx.cf.code.SimException:局部变量类型不匹配:尝试使用int类型的局部变量设置或访问java.lang.Object类型的值。这是忽略局部变量信息的.class转换工具的症状。

请使用以下
proguard
进行在优化过程中,本机方法需要保持原样

-dontusemixedcaseclassnames
-optimizationpasses 5
-allowaccessmodification
-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.preference.Preference
-keep public class * extends android.support.v4.app.Fragment
-keep public class * extends android.app.Fragment
# For native methods, see http://proguard.sourceforge.net/manual/examples.html#native
-keepclasseswithmembernames class * {
 native <methods>;
}
-keep public class * extends android.view.View {
 public <init>(android.content.Context);
 public <init>(android.content.Context, android.util.AttributeSet);
 public <init>(android.content.Context, android.util.AttributeSet, int);
 public void set*(...);
}
-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);
}
# For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations
-keepclassmembers enum * {
 public static **[] values();
 public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
 public static final android.os.Parcelable$Creator *;
}
-dontusemixedcaseclassnames
-优化过程5
-允许访问修改
-keep public class*扩展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*扩展了android.preference.preference
-keep public class*扩展了android.support.v4.app.Fragment
-keep public class*扩展了android.app.Fragment
#有关本机方法,请参见http://proguard.sourceforge.net/manual/examples.html#native
-KeepClassSwithMemberNames类*{
本地人;
}
-keep public class*扩展了android.view.view{
public(android.content.Context);
public(android.content.Context、android.util.AttributeSet);
public(android.content.Context,android.util.AttributeSet,int);
公共无效集*(…);
}
-keepclassswithmembers类*{
public(android.content.Context、android.util.AttributeSet);
}
-keepclassswithmembers类*{
public(android.content.Context,android.util.AttributeSet,int);
}
-keepclassmembers类*扩展了android.app.Activity{
public void*(android.view.view);
}
#有关枚举类,请参见http://proguard.sourceforge.net/manual/examples.html#enumerations
-keepclassmembers枚举*{
公共静态**[]值();
公共静态**valueOf(java.lang.String);
}
-keep class*实现android.os.Parcelable{
公开静态最终android.os.Parcelable$Creator*;
}

希望这有帮助。

请使用以下
proguard
作为参考,因为在优化过程中,本机方法需要保持原样

-dontusemixedcaseclassnames
-optimizationpasses 5
-allowaccessmodification
-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.preference.Preference
-keep public class * extends android.support.v4.app.Fragment
-keep public class * extends android.app.Fragment
# For native methods, see http://proguard.sourceforge.net/manual/examples.html#native
-keepclasseswithmembernames class * {
 native <methods>;
}
-keep public class * extends android.view.View {
 public <init>(android.content.Context);
 public <init>(android.content.Context, android.util.AttributeSet);
 public <init>(android.content.Context, android.util.AttributeSet, int);
 public void set*(...);
}
-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);
}
# For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations
-keepclassmembers enum * {
 public static **[] values();
 public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
 public static final android.os.Parcelable$Creator *;
}
-dontusemixedcaseclassnames
-优化过程5
-允许访问修改
-keep public class*扩展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*扩展了android.preference.preference
-keep public class*扩展了android.support.v4.app.Fragment
-keep public class*扩展了android.app.Fragment
#有关本机方法,请参见http://proguard.sourceforge.net/manual/examples.html#native
-KeepClassSwithMemberNames类*{
本地人;
}
-keep public class*扩展了android.view.view{
public(android.content.Context);
public(android.content.Context、android.util.AttributeSet);
public(android.content.Context,android.util.AttributeSet,int);
公共无效集*(…);
}
-keepclassswithmembers类*{
public(android.content.Context、android.util.AttributeSet);
}
-keepclassswithmembers类*{
public(android.content.Context,android.util.AttributeSet,int);
}
-keepclassmembers类*扩展了android.app.Activity{
public void*(android.view.view);
}
#有关枚举类,请参见http://proguard.sourceforge.net/manual/examples.html#enumerations
-keepclassmembers枚举*{
公共静态**[]值();
公共静态**valueOf(java.lang.String);
}
-keep class*实现android.os.Parcelable{
公开静态最终android.os.Parcelable$Creator*;
}

希望这有帮助。

您可以尝试在package
com.example.mylog
中创建一个虚拟的
Log
类,其中NOPs用于
v、i、w、d、e
,然后使用此proguard重新映射

android.util.Log -> com.example.mylog.Log

使用
-applymapping

选项,您可以尝试在package
com.example.mylog
中创建一个虚拟
Log
类,其中NOPs用于
v、i、w、d、e
,然后使用此proguard重新映射

android.util.Log -> com.example.mylog.Log

使用选项
-applymapping

也可能会出现其他错误。请再次检查。检查编辑qus警告:忽略匿名内部类(android.support.v7.widget.by)的InnerClasses属性,该匿名内部类没有关联的EnclosingMethod属性。这种类型的错误来自不同的包名,比如(android.support.v7.widget.bx),这表明您必须保留本机引用。请发布您的proguard文件keepparameternames-重命名ResourceFileAttribute SourceFile-KeepAttribute异常、内部类、签名、已弃用、LineNumberTable、SourceFile-KeepAttribute封闭方法##########删除日志#################Assumensidefects类android.util.log{公共;public static***w(…);public static***d(…);public static***e(…);}编译文件树(dir:'libs',include:['.jar',exclude:'android support-.jar')可能还有其他错误。请再次检查。检查编辑qus警告:忽略匿名内部类(android.support.v7.wid)的InnerClasses属性