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版本为

类路径'com.android.tools.build:gradle:3.0.1'

类路径'com.google.gms:google-services:3.1.0'

我需要帮助,问题是什么,如何解决?

注意:我的设备上的应用程序通过 USB 运行 没问题,但我无法生成 APK 以供发布。

首先感谢@MatPag,您对上述问题的评论是正确的,另外还有一个补充可以解决这个问题:

  1. 数组有方括号,中间没有 space。像这样:protected Object[][] getContents();
  2. 我必须将以下两行添加到 proguard 文件

    -忽略警告

    -保持class * { public私人*; }

这个解决方案在 here