代码之家  ›  专栏  ›  技术社区  ›  Amjad Omari

Android studio无法在proguard错误配置中生成签名的APK

  •  0
  • Amjad Omari  · 技术社区  · 6 年前

    我有一个生成签名APK的问题。

    enter image description here

    这里是proguard规则。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版本是

    • MinSDK版本=19
    • targetSdkVersion=27
    • 编译SDK版本=27
    • buildToolsVersion='27.0.0'
    • supportLibraryVersion='27.0.1'
    • GMS版本='11.6.0'
    • firebaseVersion='11.6.0'

    类路径的com。安卓工具。建造:渐变:3.0.1’

    类路径的com。谷歌。谷歌服务:3.1.0'

    我需要帮助,有什么问题,怎么解决?

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

    1 回复  |  直到 6 年前
        1
  •  0
  •   Amjad Omari    6 年前

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

    1. 一个数组有方括号,中间没有空格在中间。如下所示:受保护对象[][getContents();
    2. 我必须在proguard文件中添加以下两行

      -忽略警告

      -保持课堂*{

    这个解决方案在 here