Android Proguard与google play服务

Android Proguard与google play服务,android,apk,proguard,google-play-services,Android,Apk,Proguard,Google Play Services,我有一个Android项目(target=GoogleAPI:17)。 我正在使用Proguard,在我添加GooglePlayServices库作为依赖项之前,一切都很好。 现在我得到以下错误: java.lang.IllegalArgumentException: Value is not a reference value [proguard.evaluation.value.InstructionOffsetValue] at proguard.evaluation.value.Valu

我有一个Android项目(target=GoogleAPI:17)。 我正在使用Proguard,在我添加GooglePlayServices库作为依赖项之前,一切都很好。 现在我得到以下错误:

java.lang.IllegalArgumentException: Value is not a reference value [proguard.evaluation.value.InstructionOffsetValue]
at proguard.evaluation.value.Value.referenceValue(Value.java:97)
at proguard.optimize.evaluation.SimpleEnumUseSimplifier.isPoppingSimpleEnum(SimpleEnumUseSimplifier.java:530)
at proguard.optimize.evaluation.SimpleEnumUseSimplifier.isPoppingSimpleEnum(SimpleEnumUseSimplifier.java:520)
at proguard.optimize.evaluation.SimpleEnumUseSimplifier.visitVariableInstruction(SimpleEnumUseSimplifier.java:229)
at proguard.classfile.instruction.VariableInstruction.accept(VariableInstruction.java:306)
at proguard.optimize.evaluation.SimpleEnumUseSimplifier.visitCodeAttribute(SimpleEnumUseSimplifier.java:131)
at proguard.classfile.attribute.CodeAttribute.accept(CodeAttribute.java:101)
at proguard.classfile.ProgramMethod.attributesAccept(ProgramMethod.java:79)
at proguard.classfile.attribute.visitor.AllAttributeVisitor.visitProgramMember(AllAttributeVisitor.java:95)
at proguard.classfile.util.SimplifiedVisitor.visitProgramMethod(SimplifiedVisitor.java:91)
at proguard.classfile.ProgramMethod.accept(ProgramMethod.java:71)
at proguard.classfile.ProgramClass.methodsAccept(ProgramClass.java:504)
at proguard.classfile.visitor.AllMethodVisitor.visitProgramClass(AllMethodVisitor.java:47)
at proguard.classfile.ProgramClass.accept(ProgramClass.java:346)
at proguard.classfile.ClassPool.classesAccept(ClassPool.java:124)
at proguard.optimize.Optimizer.execute(Optimizer.java:373)
at proguard.ProGuard.optimize(ProGuard.java:306)
at proguard.ProGuard.execute(ProGuard.java:115)
at proguard.ProGuard.main(ProGuard.java:483)
我什么都试了,什么都没发生:(

这是我的proguard cfg文件:

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


-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable

-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

-dontwarn android.support.**
-dontwarn org.apache.commons.codec.binary.**
-dontwarn com.google.common.collect.Maps

-keepclassmembers class * {
    native <methods>;
}

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

-keepclassmembers 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 *;
}

-keep class android.support.v4.app.** { *; }
-keep interface android.support.v4.app.** { *; }
-keep class com.actionbarsherlock.** { *; }
-keep interface com.actionbarsherlock.** { *; }

-keepclassmembers class **.R$* {
    public static <fields>;
}

-keep class **.R$*

-keepattributes *Annotation*

-keep class com.tjeannin.apprate.** {
   *;
}


-dump class_files.txt 
-printseeds seeds.txt 
-printusage unused.txt 
-printmapping mapping.txt 

-keep class com.aviary.android.feather.headless.AviaryEffect
-keep class com.aviary.android.feather.headless.media.ExifInterfaceWrapper
-keep class com.aviary.android.feather.headless.moa.Moa
-keep class com.aviary.android.feather.headless.moa.MoaResult
-keep class com.aviary.android.feather.headless.moa.MoaHD
-keep class com.aviary.android.feather.headless.filters.NativeFilterProxy
-keep class com.aviary.android.feather.headless.utils.CameraUtils
-keep class com.aviary.android.feather.headless.gl.GLUtils

-keep class com.aviary.android.feather.opengl.AviaryGLSurfaceView
-keep class com.aviary.android.feather.widget.ScrollerRunnable
-keep class com.aviary.android.feather.library.services.BaseContextService
-keep class it.sephiroth.android.library.imagezoom.easing.Easing
-keep class com.aviary.android.feather.library.external.tracking.TrackerFactory
-keep class com.aviary.android.feather.library.tracking.AbstractTracker

-keep interface com.aviary.android.feather.library.services.IAviaryController
-keep interface com.aviary.android.feather.headless.filters.IFilter
-keep interface com.aviary.android.feather.widget.ScrollerRunnable$ScrollableView

-keep class * extends com.aviary.android.feather.library.tracking.AbstractTracker
-keep class * extends com.aviary.android.feather.headless.filters.IFilter
-keep class * extends com.aviary.android.feather.headless.filters.INativeFilter
-keep class * implements com.aviary.android.feather.library.services.IAviaryController
-keep class * extends com.aviary.android.feather.library.services.BaseContextService
-keep class * implements com.aviary.android.feather.widget.ScrollerRunnable$ScrollableView { *; }
-keep class * implements java.lang.Runnable

-keepclasseswithmembers class * {
    protected <init>( com.aviary.android.feather.library.services.BaseContextService );
}

-keepclasseswithmembers class * {
    public <init>( com.aviary.android.feather.library.services.IAviaryController );
}

-keepclassmembers class com.aviary.android.feather.library.tracking.AbstractTracker { *; }

-keepclassmembers interface it.sephiroth.android.library.imagezoom.easing.Easing { *; }

-keepclassmembers class com.aviary.android.feather.library.external.tracking.TrackerFactory { *; }

-keepclassmembers class * implements it.sephiroth.android.library.imagezoom.easing.Easing { *; }

# This class should not be obfuscated at all
-keepclassmembers class com.aviary.android.feather.headless.moa.MoaResult {
    public java.lang.String inputString;
    public android.graphics.Bitmap inputBitmap;
    public java.lang.String outputString;
    public android.graphics.Bitmap outputBitmap;
    public volatile int active;
    public void cancel();
    public synchronized void execute();
}

# Keep all classes with a native method

-keepclassmembers class * {
   public static native <methods>;
   private static native <methods>;
   static native <methods>;
   private native <methods>;
   native <methods>;
}

-keepattributes Signature
-优化过程5
-dontusemixedcaseclassnames
-DontskipnonPublicLibraryClass
-不要翻转
-冗长的
-优化!代码/简化/算术,!字段/*,!类/合并/*
-重命名SourceFileAttribute源文件
-keepattributes源文件,LineNumberTable
-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.app.backup.BackupAgentHelper
-keep public class*扩展了android.preference.preference
-保持公共类com.android.vending.licensing.ILicensingService
-dontwarn android.support**
-dontwarn org.apache.commons.codec.binary**
-dontwarn com.google.common.collect.Maps
-keepclassmembers类*{
本地人;
}
-keepclassmembers类*{
public(android.content.Context、android.util.AttributeSet);
}
-keepclassmembers类*{
public(android.content.Context,android.util.AttributeSet,int);
}
-keepclassmembers类*扩展了android.app.Activity{
public void*(android.view.view);
}
-keepclassmembers枚举*{
公共静态**[]值();
公共静态**valueOf(java.lang.String);
}
-keep class*实现android.os.Parcelable{
公开静态最终android.os.Parcelable$Creator*;
}
-keep class android.support.v4.app.*{*;}
-保留android.support.v4.app接口。**{*;}
-保持类com.actionbarsherlock.*{*;}
-保留接口com.actionbarsherlock.*{*;}
-keepclassmembers类**.R$*{
公共静态;
}
-继续上课**$*
-keepattributes*注释*
-保持类com.tjeannin.apprate.*{
*;
}
-dump class_files.txt
-printseeds.txt
-printusage unused.txt
-printmapping.txt
-保持类com.avariy.android.feather.headless.avarieffect
-keep class com.aviry.android.feather.headless.media.ExifInterfaceWrapper
-保持类com.aviry.android.feather.headless.moa.moa
-保持类com.aviry.android.feather.headless.moa.moa结果
-keep class com.aviry.android.feather.headless.moa.MoaHD
-保持类com.avariy.android.feather.headless.filters.NativeFilterProxy
-保持类com.aviry.android.feather.headless.utils.CameraUtils
-保持类com.aviry.android.feather.headless.gl.GLUtils
-保持类com.aviary.android.feather.opengl.AviaryGLSurfaceView
-保持类com.aviary.android.feather.widget.ScrollerUnable
-保留com.aviary.android.feather.library.services.BaseContextService类
-keep class it.sephiroth.android.library.imagezoom.easing.easing
-keep class com.avariy.android.feather.library.external.tracking.TrackerFactory
-保持类com.aviary.android.feather.library.tracking.AbstractTracker
-保留接口com.aviary.android.feather.library.services.IAviaryController
-保留接口com.aviry.android.feather.headless.filters.IFilter
-保持接口com.avariy.android.feather.widget.ScrollerUnnable$ScrollableView
-keep class*扩展com.aviary.android.feather.library.tracking.AbstractTracker
-keep class*扩展com.aviry.android.feather.headless.filters.IFilter
-keep class*扩展com.aviry.android.feather.headless.filters.INativeFilter
-keep类*实现com.aviary.android.feather.library.services.IAviaryController
-keep class*扩展com.aviary.android.feather.library.services.BaseContextService
-keep class*实现com.aviary.android.feather.widget.ScrollerUnnable$ScrollableView{*;}
-keep class*实现java.lang.Runnable
-keepclassswithmembers类*{
受保护(com.aviary.android.feather.library.services.BaseContextService);
}
-keepclassswithmembers类*{
公共(com.aviary.android.feather.library.services.IAviaryController);
}
-keepclassmembers类com.aviary.android.feather.library.tracking.AbstractTracker{*;}
-keepclassmembers接口it.sephiroth.android.library.imagezoom.easing.easing{*;}
-keepclassmembers类com.aviary.android.feather.library.external.tracking.TrackerFactory{*;}
-keepclassmembers类*实现它。sephiroth.android.library.imagezoom.easing.easing{*;}
#这个类根本不应该被混淆
-keepclassmembers类com.aviry.android.feather.headless.moa.MoaResult{
public java.lang.String inputString;
公共android.graphics.Bitmap输入位图;
public java.lang.String输出字符串;
公共android.graphics.Bitmap输出位图;
公众参与积极;
公共作废取消();
公共同步的void execute();
}
#使用本机方法保留所有类
-keepclassmembers类*{
公共静态本地;
私有静态本机;
静态本机;
私人本地人;
本地人;
}
-保留署名
请帮我拿这个


谢谢。

您没有包括Google Play服务Proguard例外:

如果您使用Android Studio,则会包含ProGuard指令

注:Play services客户端库中包含ProGuard指令,以保留所需的类。Gradle的Android插件会自动将ProGuard配置文件附加到AAR(Android存档)中打包并将该包附加到您的ProGuard配置中。在项目创建过程中,Android Studio会自动创建ProGuard配置文件和build.gradle属性以供ProGuard使用。若要将ProGuard与Android Studio一起使用,您必须在build.gradle构建类型中启用ProGuard设置。有关更多信息,请参阅ProGuard这是一个严肃的话题


参考资料:

我该如何添加此异常?似乎只是说异常是自动添加的?答案是20