2016-05-06 48 views
5

我有一個通過構建服務器構建的Xamarin.Android應用程序。該應用程序針對API Level 23和Min Android Version 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?)的bug的問題。我們有AndroidManifest.xml和AndroidManifestAlpha.xml。在構建過程中,我們將/p:AndroidManifest=Properties/AndroidManifestAlpha.xml指定爲MSBUILD參數,但編譯僅將所有活動,服務和單聲道信息添加到AndroidManifest.xml文件。該版本最終使用指定的AndroidManifestAlpha.xml文件並編譯沒有單聲道運行時的APK;導致上述錯誤。

+0

你是如何修復它的?只留下一個清單文件? –

+0

@AlexSorokoletov是的。我的構建過程用腳本修改了清單文件 –

0

更改目標Android版本。在Mac上的VisualStudio中,路徑是Project - >。Options-> General-> TargetFramework。

相關問題