【发布时间】:2017-05-23 05:48:25
【问题描述】:
我有一个 Xamarin Forms 项目,我正在尝试使用与 VSTS 的持续集成来与 HockeyApps 集成。 我的应用程序使用 Java 1.8 编译,它使用 ProGuard 来缩小 android apk 文件。 但是当java尝试编译应用程序时,发现proguard的Installed版本与Java 1.8不兼容 错误如下: ... 无法处理类 [android/app/ActivityTracker.class] 不支持的类版本号 [52.0] 最大 51.0,Java 1.7... 在我本地的 Visual Studio 安装中,我 fixed 它替换了 Xamarin 为最新的 5.x 安装的默认 proguard 版本...
有人知道如何使用 VSTS 吗?
详细错误:
_CompileToDalvikWithDx:
C:\Program Files\Java\jdk1.8.0_102\\bin\java.exe -jar C:\java\androidsdk\android-sdk\tools\proguard\lib\proguard.jar -include C:\java\androidsdk\android-sdk\tools\proguard\proguard-android.txt -include obj\Release\proguard\proguard_xamarin.cfg -include obj\Release\proguard\proguard_project_references.cfg -include obj\Release\proguard\proguard_project_primary.cfg -include proguard.cfg "-injars 'obj\Release\proguard\__proguard_input__.jar';'C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\MonoAndroid\v7.0\mono.android.jar';'obj\Release\__library_projects__\FormsViewGroup\library_project_imports\formsviewgroup.jar';'obj\Release\__library_projects__\HockeySDK.AndroidBindings\library_project_imports\bin\classes.jar';'C:\Users\buildguest\AppData\Local\Xamarin\Xamarin.Android.Support.Animated.Vector.Drawable\23.3.0.0\embedded\classes.jar';'C:\Users\buildguest\AppData\Local\Xamarin\Xamarin.Android.Support.Design\23.3.0.0\embedded\classes.jar';'C:\Users\buildguest\AppData\Local\Xamarin\Xamarin.Android...
java.io.IOException: Can't read [C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\MonoAndroid\v7.0\mono.android.jar] (Can't process class [android/app/ActivityTracker.class] (Unsupported class version number [52.0] (maximum 51.0, Java 1.7)))
at proguard.InputReader.readInput(InputReader.java:230)
at proguard.InputReader.readInput(InputReader.java:200)
at proguard.InputReader.readInput(InputReader.java:178)
at proguard.InputReader.execute(InputReader.java:78)
at proguard.ProGuard.readInput(ProGuard.java:196)
at proguard.ProGuard.execute(ProGuard.java:78)
at proguard.ProGuard.main(ProGuard.java:492)
Caused by: java.io.IOException: Can't process class [android/app/ActivityTracker.class] (Unsupported class version number [52.0] (maximum 51.0, Java 1.7))
at proguard.io.ClassReader.read(ClassReader.java:112)
at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)
at proguard.io.JarReader.read(JarReader.java:65)
at proguard.io.DirectoryPump.readFiles(DirectoryPump.java:65)
at proguard.io.DirectoryPump.pumpDataEntries(DirectoryPump.java:53)
at proguard.InputReader.readInput(InputReader.java:226)
... 6 more
Caused by: java.lang.UnsupportedOperationException: Unsupported class version number [52.0] (maximum 51.0, Java 1.7)
at proguard.classfile.util.ClassUtil.checkVersionNumbers(ClassUtil.java:140)
at proguard.classfile.io.ProgramClassReader.visitProgramClass(ProgramClassReader.java:88)
at proguard.classfile.ProgramClass.accept(ProgramClass.java:346)
at proguard.io.ClassReader.read(ClassReader.java:91)
... 11 more
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8
C:\Program Files (x86)\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(2025,3): Error MSB6006: "java.exe" exited with code 1.
【问题讨论】:
-
您使用的是托管构建代理吗?
-
是的,我添加到问题中的详细错误错误消息仅在我将 system.debug 变量设置为 true 时显示,如果我不这样做,则错误描述性要少得多
-
我刚刚更新了 Visual Studio 的 Xamarin 并且 proguard 在我的 PC 中再次开始失败,我检查并发现 xamarin 再次将 proguard 从较新版本 (~5.2) 更新到旧版本 (4.7)跨度>
标签: xamarin.android android-proguard azure-pipelines