2016-05-06 3 views
5

У меня есть приложение Xamarin.Android, которое создается через сервер сборки. Приложение ориентировано на уровень API 23 и Min Android версии 4.1 (API 16). Во время отладки приложения работает хорошо, но когда сервер сборки компилирует приложение, упаковывает его, знаки, и выравнивает его, он выходит из строя при загрузке с ошибкой:Не удается найти приложение Mono.Android.Platform.ApiLevel_23 или Xamarin.Android.Platform

Unable to get provider mono.MonoRuntimeProvider: java.lang.RuntimeException: Unable to find application Mono.Android.Platform.ApiLevel_23 or Xamarin.Android.Platform

Большинство телефонов приводит к немедленному аварии с ошибкой упомянутых выше, но несколько устройств работают нормально. Единственное, что есть у этих устройств, - это то, что они использовались для развертывания приложения во время разработки. Это заставляет меня полагать, что у них установлен общий срок работы и, следовательно, это не подводит. На сервере сборки есть новейший Xamarin.Android (как и машины-разработчики), новейшие Java, последние JDK и новейшие Android-библиотеки (для каждого менеджера SDK). Строящая конфигурация не использует общую среду выполнения, она не связывается (хотя я также пробовал ее с привязкой только к сборкам SDK), и он поддерживает только armeabi-7va ABI.

Что я делаю неправильно?

+1

Я считаю, что моя проблема заключалась в том, что я использовал общее время выполнения (скопировал конфигурацию выпуска, но это не было перемещено). Отличная подсказка с приложением, работающим только на отлаженных устройствах. Благодарю. – AllDayer

ответ

2

Я, наконец, нашел проблему, которая кажется ошибкой с Xamarin (или Mono?). У нас есть AndroidManifest.xml и AndroidManifestAlpha.xml. Во время сборки мы указываем /p:AndroidManifest=Properties/AndroidManifestAlpha.xml аргументам MSBUILD, но компиляция добавляет все активность, услуги и моно информацию только в файл AndroidManifest.xml. Конструкция в конечном итоге использует указанный файл AndroidManifestAlpha.xml и скомпилирует APK без времени выполнения; в результате чего была упомянута выше ошибка.

+0

Как вы это исправили? Остался только один файл манифеста? –

+0

@AlexSorokoletov да. Мой процесс сборки изменяет файл манифеста с помощью скрипта –

0

Измените целевую версию Android. В VisualStudio на Mac путь - Project ->. Options-> General-> TargetFramework.

Смежные вопросы