Proguard:在库 class java.lang.Throwable 中找不到引用的方法 'void addSuppressed(java.lang.Throwable)'

Proguard: can't find referenced method 'void addSuppressed(java.lang.Throwable)' in library class java.lang.Throwable

当 运行 ProGuard 我收到以下警告:

can't find referenced method 'void addSuppressed(java.lang.Throwable)' in library class java.lang.Throwable

这是我的混淆规则:

-injars build/libs/test-main-1.0.jar
-libraryjars /System/Library/Frameworks/JavaVM.framework/Classes/classes.jar

-dontoptimize
-dontobfuscate
-dontpreverify
-printusage
-dontnote

-keep public class com.foo.app.Main {
    public static void main(java.lang.String[]);
}

-keepclassmembers class * {
    static final % *;
    static final java.lang.String *;
}

编辑:我在命令行中使用混淆器 proguard.jar。

如何防止此警告? Throwable 不是 classes.jar 的一部分吗?

Android 不支持 try with resources 语法中使用的 addSuppressed 方法。不要使用那种语法,你会没事的。

我通过在名为 build.gradle 的文件中将我的 SDK 版本 18 更改为 19 解决了这个问题:

旧:

compileSdkVersion 18

现在是:

compileSdkVersion 19