首页 文章

更新到Android SDK 23时,ProGuard失败

提问于
浏览
1

我正在尝试将Umweltzone Android application更新为SDK 23.因此,我更改项目配置如下:

// Excerpt from Umweltzone/build.gradle
compileSdkVersion 23
// ...
compile "com.android.support:design:23.1.1"

当我构建 release 版本时 fails 出现此错误(拖尾部分):

...注意:有3个未知类的引用 . 你应该检查你的配置是否有拼写错误 . (http://proguard.sourceforge.net/manual /troubleshooting.html#unknownclass)注意:有2个类试图使用反射访问封闭类 . 您应该考虑保留内部类属性(使用'-keepattributes InnerClasses') . (http://proguard.sourceforge.net/manual/troubleshooting.html#attributes)注意:保留的类成员中有100个unkept描述符类 . 您应该考虑明确保留所提到的类(使用'-keep') . (http://proguard.sourceforge.net/manual/troubleshooting.html#descriptorclass)注意:有5个未解析的类或接口动态引用 . 您应该检查是否需要指定其他程序 jar . (http://proguard.sourceforge.net/manual/troubleshooting.html#dynamicalclass)注意:通过内省对类成员进行了3次访问 . 您应该考虑明确保留提到的类成员(使用'-keep'或'-keepclassmembers') . (http://proguard.sourceforge.net/manual/troubleshooting.html#dynamicalclassmember)警告:库类成员有1个未解析的引用 . 您可能需要更新库版本 . (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedlibraryclassmember)警告:处理任务时出现异常java.io.IOException:请先纠正上述警告 . :Umweltzone:transformClassesAndResourcesWithProguardForRelease FAILED FAILURE:构建失败并出现异常 . 出了什么问题:任务执行失败':Umweltzone:transformClassesAndResourcesWithProguardForRelease' . > java.io.IOException:请先纠正上述警告 .

发布版本适用于SDK 22.可以找到ProGuard配置here . 完整的构建输出可以找到here,因为StackOverflow不允许我在这里粘贴因为长度限制 .

1 回答

  • 3

    坚持错误信息,即首先纠正上述警告 .

    以上警告是:

    com.google.android.gms.auth.GoogleAuthUtil: can't find referenced method
    'void setLatestEventInfo(android.content.Context,java.lang.CharSequence,
    java.lang.CharSequence,android.app.PendingIntent)' in library class android.app.Notification
    

    最有可能的是,您不需要这种方法 . 因此,您可以通过将以下行添加到proguard配置来消除警告:

    -dontwarn com.google.android.gms.**
    

相关问题