2017-01-09 16 views
2

У меня есть проект Xamarin Forms, который я пытаюсь интегрировать с HockeyApps, используя непрерывную интеграцию с VSTS. Мое приложение компилируется с использованием Java 1.8 и использует ProGuard для сжатия файла apk android. Но когда Java пытается скомпилировать приложение, он обнаружил, что установленная версия proguard несовместима с Java 1.8 Ошибка: ... Невозможно обработать класс [android/app/ActivityTracker.class] Неподдерживаемый номер версии класса [52,0] максимум 51,0, Java 1,7 ... В моей локальной установки Visual Studio, я fixed это замена версии Proguard по умолчанию, Xamarin устанавливает для Lastest одного 5.x ...VSTS - Проблемы с версией Xamarin Proguard и JDK 1.8

Кто-нибудь знает, как сделать это с помощью 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. 
+0

Вы используете хостинг-агент? –

+0

Да, и подробное сообщение об ошибке ошибки, которое я добавил к вопросу, просто показывает, когда я установил переменную system.debug в true, если я этого не сделаю, тогда ошибка будет намного менее описательной. – Boanerge

+0

Я только что обновил Xamarin для визуальной студии и proguard снова провалился на моем ПК, я проверил и обнаружил, что обновление xamarin proguard снова из новой версии (~ 5.2) в более старую версию (4.7) – Boanerge

ответ

1

Боюсь, что не существует какой-либо обходной путь для выпуска Hosted сборки агента, так как пользователь не имеет разрешения на обновление установленного программного обеспечения на Hosted Машина.

Вам необходимо указать deploy your own build agent, а затем заменить файлы вручную.

1

Причина заключается в том, что он использует JDK 1.7, что несовместимо. Вы можете указать версию JDK Xamarin строить шаг:

enter image description here

+0

Вот что я сделал. Если я покину JDK 7, проект завершится неудачей, прежде чем достигнуть точки компиляции proguard, и когда я выберу JDK 8, тогда он не попытается скомпилировать Proguard. Это было то же самое на моем компьютере, разница в том, что на моем компьютере я могу заменить SDK android, который устанавливает xamarin, но в VSTS я не могу этого сделать. – Boanerge

+0

@Boanerge Вы имеете в виду, что он по-прежнему бросает ту же ошибку, если использует JDK 8? Предоставьте здесь подробное сообщение об ошибке. (Сообщение об ошибке в вашем исходном сообщении слишком простое) –

+0

Я внесла некоторые изменения в проект, позвольте мне откинуть его назад, чтобы я снова смог повторно выполнить ошибку ... – Boanerge