当构建目标设置为16时,Proguard失败,但在api级别17时编译



我可以在4.1.2 (api 16)和4.2.2 (api 17)上调试和运行我的应用程序。如果我在构建设置为17时尝试导出应用程序用于生产,它将正常工作,但如果我将目标降低到17,我会得到一些错误,主要错误是

警告:com.google.android.gms.common.images.a:找不到引用的方法android.graphics.drawable。Drawable[] getCompoundDrawablesRelative()' in class android.widget.TextView

不知道为什么它抛出这个错误或为什么它适用于一个api级别而不是另一个?

这是我的proguard配置文件

 -optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-keepattributes Signature
-keepattributes *Annotation*
-dontobfuscate
-keepclassmembers public class org.springframework {
    public *;
}
-dontwarn com.amazonaws.**
-dontwarn com.fasterxml.**
-dontwarn org.springframework.**
-dontwarn com.emilsjolander.**

-keep class com.amazonaws.**                            { *; }
-keep class org.springframework.**                      { *; }
-keep class com.fasterxml.**                            { *; }
-keep class com.facebook.**                             { *; }
-keep class com.emilsjolander.** { *; } 

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

-keep class * extends java.util.ListResourceBundle {
    protected Object[][] getContents();
}
-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
    public static final *** NULL;
}
-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
    @com.google.android.gms.common.annotation.KeepName *;
}
-keepnames class * implements android.os.Parcelable {
    public static final ** CREATOR;
}

报告的方法在早期版本的Android中不存在。ProGuard警告应用程序中可能出现的不一致。在实践中,这是可以的;GMS库可以正确地处理版本。你可以告诉ProGuard继续:

-dontwarn android.widget.TextView

相关内容

最新更新