2016-05-06 15 views
5

ビルドサーバーを介して構築されているXamarin.Androidアプリケーションがあります。アプリケーションはAPIレベル23と最小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マシンと同様)、最新のJava、最新のJDK、および最新のAndroidライブラリ(SDKマネージャごと)があります。ビルドされる構成は共有ランタイムを使用せず、リンクしていません(SDKアセンブリのみをリンクして試しましたが)。armeabi-7va ABIのみをサポートしています。

私は間違っていますか?

+1

共有ランタイムを使用していた問題があると思います(リリース構成をコピーしても移動しませんでした)。デバッグされたデバイス上でのみ動作するアプリの偉大な手掛かり。ありがとう。 – AllDayer

答えて

2

私は最終的にXamarin(またはMono?)のバグと思われる問題を発見しました。 AndroidManifest.xmlとAndroidManifestAlpha.xmlがあります。ビルド中にMSBUILD引数に/p:AndroidManifest=Properties/AndroidManifestAlpha.xmlを指定しますが、コンパイルによってすべてのアクティビティ、サービス、およびモノ情報がAndroidManifest.xmlファイルにのみ追加されます。ビルドでは最終的に、指定されたAndroidManifestAlpha.xmlファイルを使用し、モノラルランタイムなしでAPKをコンパイルします。上記のエラーが発生します。

+0

どのように修正しましたか?マニフェストファイルを1つだけ残しておきますか? –

+0

@AlexSorokoletovはい。私のビルドプロセスは、マニフェストファイルをスクリプトで修正します –

0

ターゲットのAndroidバージョンを変更します。 MacのVisualStudioでは、パスはProject - >。Options-> General-> TargetFrameworkです。

関連する問題