【发布时间】:2017-01-23 16:20:50
【问题描述】:
我正在尝试在我的 Xamarin.Android 项目中使用 Proguard,但编译失败并出现错误 Unsupported class version number [52.0] (maximum 51.0, Java 1.7)
我从那些twoquestions 看到它可能是Java 7 和Java 8 之间的不匹配,更准确地说是某些版本的proguard 不支持Java 8。但是在Xamarin Preferences -> SDK Location, 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] (无法处理类 [android/app/ActivityTracker.class](不支持 类版本号 [52.0](最大 51.0,Java 1.7)))在 proguard.InputReader.readInput(InputReader.java:230) 在 proguard.InputReader.readInput(InputReader.java:200) 在 proguard.InputReader.readInput(InputReader.java:178) 在 proguard.InputReader.execute(InputReader.java:78) 在 proguard.ProGuard.readInput(ProGuard.java:196) 在 proguard.ProGuard.execute(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.DirectoryPump.readFiles(DirectoryPump.java:65) 在 proguard.io.DirectoryPump.pumpDataEntries(DirectoryPump.java:53) 在 proguard.InputReader.readInput(InputReader.java:226) ... 还有 6 个 引起:java.lang.UnsupportedOperationException:不支持的类 版本号 [52.0](最高 51.0,Java 1.7)在 proguard.classfile.util.ClassUtil.checkVersionNumbers(ClassUtil.java:140) 在 proguard.classfile.io.ProgramClassReader.visitProgramClass(ProgramClassReader.java:88) 在 proguard.classfile.ProgramClass.accept(ProgramClass.java:346) 在 proguard.io.ClassReader.read(ClassReader.java:91) ... 11 更多
9 个警告 1 个错误
【问题讨论】:
标签: xamarin xamarin.android android-proguard