Android studio 无法在 proguard 错误配置中生成签名 APK
Android studio failed to generate signed APK in proguard error configurations
我在生成签名 APK 时遇到问题。
这是proguard-rules.pro文件
-assumenosideeffects class android.util.Log {
public static int v(...);
public static int d(...);
}
# Required to preserve the Flurry SDK
#-keep class com.flurry.** { *; }
#-dontwarn com.flurry.**
#-keepattributes *Annotation*,EnclosingMethod,Signature
#-keepclasseswithmembers class * {
# public (android.content.Context, android.util.AttributeSet, int);
# }
# Google Play Services library
-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;
}
以及下行中描述的错误
# Google Play Services library
-keep class * extends java.util.ListResourceBundle {
protected Object[ ][ ] getContents();
}
使用的lib版本为
- minSdkVersion = 19
- targetSdkVersion = 27
- compileSdkVersion = 27
- buildToolsVersion = '27.0.0'
- supportLibraryVersion = '27.0.1'
- gmsVersion = '11.6.0'
- firebaseVersion = '11.6.0'
类路径'com.android.tools.build:gradle:3.0.1'
类路径'com.google.gms:google-services:3.1.0'
我需要帮助,问题是什么,如何解决?
注意:我的设备上的应用程序通过 USB 运行 没问题,但我无法生成 APK 以供发布。
首先感谢@MatPag,您对上述问题的评论是正确的,另外还有一个补充可以解决这个问题:
- 数组有方括号,中间没有 space。像这样:protected Object[][] getContents();
我必须将以下两行添加到 proguard 文件
-忽略警告
-保持class * {
public私人*;
}
这个解决方案在 here
我在生成签名 APK 时遇到问题。
这是proguard-rules.pro文件
-assumenosideeffects class android.util.Log {
public static int v(...);
public static int d(...);
}
# Required to preserve the Flurry SDK
#-keep class com.flurry.** { *; }
#-dontwarn com.flurry.**
#-keepattributes *Annotation*,EnclosingMethod,Signature
#-keepclasseswithmembers class * {
# public (android.content.Context, android.util.AttributeSet, int);
# }
# Google Play Services library
-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;
}
以及下行中描述的错误
# Google Play Services library
-keep class * extends java.util.ListResourceBundle {
protected Object[ ][ ] getContents();
}
使用的lib版本为
- minSdkVersion = 19
- targetSdkVersion = 27
- compileSdkVersion = 27
- buildToolsVersion = '27.0.0'
- supportLibraryVersion = '27.0.1'
- gmsVersion = '11.6.0'
- firebaseVersion = '11.6.0'
类路径'com.android.tools.build:gradle:3.0.1'
类路径'com.google.gms:google-services:3.1.0'
我需要帮助,问题是什么,如何解决?
注意:我的设备上的应用程序通过 USB 运行 没问题,但我无法生成 APK 以供发布。
首先感谢@MatPag,您对上述问题的评论是正确的,另外还有一个补充可以解决这个问题:
- 数组有方括号,中间没有 space。像这样:protected Object[][] getContents();
我必须将以下两行添加到 proguard 文件
-忽略警告
-保持class * { public私人*; }
这个解决方案在 here