Xamarin.Android Proguard - 不支持的类版本号52.0

Ein*_*din 44 xamarin.android xamarin android-proguard

我正在尝试在我的Xamarin.Android项目中使用Proguard,但编译失败并出现错误 Unsupported class version number [52.0] (maximum 51.0, Java 1.7)

我从这两个 问题中看到,它可能与Java 7和Java 8不匹配,更确切地说,某些版本的proguard不支持Java 8.但是在Xamarin首选项 - > SDK位置中,Java SDK指向JDK 7:/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home

是否有更精确配置proguard的地方?还有其他想法吗?

这是失败日志:

java.io.IOException:无法读取[/Library/Frameworks/Xamarin.Android.framework/Versions/7.0.0-18/lib/xbuild-frameworks/MonoAndroid/v7.0/mono.android.jar](可以在proguard.InputReader.readInput中的proguard.InputReader.readInput(InputReader.java:230)处理类[android/app/ActivityTracker.class](不支持的类版本号[52.0](最大51.0,Java 1.7))) InputReader.java:200)在proguard.InputReader.readInput(InputReader.java:178)的proguard.InputReader.exe执行(InputReader.java:78)proguard.ProGuard.readInput(ProGuard.java:196)proguard.ProGuard.执行(ProGuard.java:78)在proguard.ProGuard.main(ProGuard.java:492)引起:java.io.IOException:无法处理类[android/app/ActivityTracker.class](不支持的类版本号[ 52.0](最大51.0,Java 1.7))proguard.io.ClassReader.read(ClassReader.java:112)位于proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)的proguard.io.JarReader.read(JarReader) .java:65)在proguard.io.Director progPard.readFiles(DirectoryPump.java:65)中的progPard.EndoryPump.pumpDataEntries(DirectoryPump.java:53)中的yPump.readFiles(DirectoryPump.java:65)... 6更多引起者:java.lang. UnsupportedOperationException:proguard.classfile.io.ProgramClassReader.visitProgramClass(ProgramClassReader.java:88)中proguard.classfile.util.ClassUtil.checkVersionNumbers(ClassUtil.java:140)中不支持的类版本号[52.0](最大51.0,Java 1.7)在proguard.classfile.ProgramClass.accept(ProgramClass.java:346)的proguard.io.ClassReader.read(ClassReader.java:91)... 11更多

9警告1错误

Jon*_*las 110

您需要proguard.jar使用此处的最新版本的Proguard 更新默认的Android SDK :

https://sourceforge.net/projects/proguard/files/

我建议您将此安装在Android附带的默认版本的一侧android-sdk\tools\proguard.只需将现有文件夹重命名为其他文件夹并添加新版本proguard.

这在Xamarin.Android 7.0发行说明中列出:

https://developer.xamarin.com/releases/android/xamarin.android_7/xamarin.android_7.0/

其中还记录了以下错误:

https://bugzilla.xamarin.com/show_bug.cgi?id=44187

这与Xamarin.Android存储库中的Pull Request协调:

https://github.com/xamarin/xamarin-android/pull/209

  • 如果替换整个proguard目录,请确保从旧目录复制配置文件:proguard-android-optimize.txt,proguard-android.txt,proguard-project.txt. (12认同)
  • 这对我来说很有用,因为我在sourceforge最新的Proguard版本中的`lib`文件夹中取代了Android`tools/proguard/lib`文件夹(目前为5.​​3.2). (3认同)