2016-05-20 21 views
0

REST APIを使用してデータをPOSTしようとしています。アプリケーションは完璧に動作していましたが、POSTを実行するコードを追加したので、新しいエラーが発生しています。誰が何がうまくいかないのかを説明し、POSTリクエストを正常に完了させる代替案を提案することができますか?XamarinのAndroidで「LinkAssemblies」タスクが予期せず失敗しました

ここで私はリリースの設定で有効にリンカーでアプリをビルドしようとすると、私が取得エラーです:

Error  The "LinkAssemblies" task failed unexpectedly. 
Xamarin.Android.XamarinAndroidException: error XA2006: Reference to metadata item 'System.Runtime.InteropServices.StandardOleMarshalObject' (defined in 'System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089') from 'System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' could not be resolved. ---> Mono.Cecil.ResolutionException: Failed to resolve System.Runtime.InteropServices.StandardOleMarshalObject 
    at Mono.Linker.Steps.MarkStep.MarkType(TypeReference reference) 
    at MonoDroid.Tuner.MonoDroidMarkStep.MarkType(TypeReference reference) 
    at Mono.Linker.Steps.MarkStep.MarkType(TypeReference reference) 
    at MonoDroid.Tuner.MonoDroidMarkStep.MarkType(TypeReference reference) 
    at Mono.Linker.Steps.MarkStep.InitializeType(TypeDefinition type) 
    at Mono.Linker.Steps.MarkStep.InitializeAssembly(AssemblyDefinition assembly) 
    at Mono.Linker.Steps.MarkStep.Initialize() 
    at Mono.Linker.Steps.MarkStep.Process(LinkContext context) 
    at Mono.Linker.Pipeline.Process(LinkContext context) 
    at MonoDroid.Tuner.Linker.Process(LinkerOptions options, LinkContext& context) 
    at Xamarin.Android.Tasks.LinkAssemblies.Execute() 
    --- End of inner exception stack trace --- 
    at Xamarin.Android.Diagnostic.Error(Int32 code, Exception innerException, String message, Object[] args) 
    at Xamarin.Android.Tasks.LinkAssemblies.Execute() 
    at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() 
    at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() GimcoIOT.Andriod 
+0

投稿コードにエラーはありません。リリースモードでこのエラーが発生しました –

答えて

1

あなたはXamarinにデスクトップの.NETアセンブリへの参照を追加している可能性があるように見えます.Androidアプリ。 System.Windows.Forms名前空間は、Xamarin.Androidプロファイルでは使用できません。 (アプリが正常にあなたがリンク無効にするとを構築したとしても、それは理論的にはまだ実行時間System.Windows.Forms名前空間を参照することがコードを実行しようとする任意の時点で失敗します。)

は、この問題を解決するために、必要になりますXamarin.Androidプロジェクトからデスクトップ.N​​ETアセンブリへの参照を削除し、他のすべての参照アセンブリがXamarin.AndroidプロファイルまたはサポートされているPCLプロファイルに対してコンパイルされていることを確認します。 documentationで述べたよう

Xamarin.Androidは異なるプロファイルのコンパイル既存のアセンブリと互換性がない ABIあります。 Xamarin.Androidプロファイルをターゲットとするアセンブリを生成するためにソースコードを再コンパイルする必要があります(Silverlightと.NET 3.5を個別にターゲットにするためにソースコードを再コンパイルする必要があるように)。

(ポータブルクラスライブラリは、この規則に特別な例外です。)


あなたが現在POSTリクエストを実行するためにSystem.Windows.Forms空間から型を使用している場合は、に切り替える必要があります別のタイプ。例えば、のメソッドのうちの1つがSystem.Net.Http.HttpClientからうまく機能するかもしれません。

関連する問題