"Link Assemblies" 在发布模式 Xamarin 中构建应用程序时任务意外失败问题 Android
"Link Assemblies" task failed unexpectedly issue while App build in Release Mode Xamarin Android
尝试在 Xamarin 中构建应用发布模式时出现以下问题 Android。
为什么会出现,如何解决?
Severity Code Description Project File Line Source Suppression State Error
The "Link Assemblies" task failed unexpectedly.
Xamarin.Android.XamarinAndroidException: error XA2006: Reference to
metadata item 'System.Void
Android.Widget.TextView::SetTextAppearance(System.Int32)' (defined in
'Xamarin.Forms.Platform.Android, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=null') from 'Xamarin.Forms.Platform.Android,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=null' could not be
resolved. ---> Mono.Cecil.ResolutionException: Failed to resolve
System.Void Android.Widget.TextView::SetTextAppearance(System.Int32)
at Mono.Linker.Steps.MarkStep.MarkMethod(MethodReference reference)
at Mono.Linker.Steps.MarkStep.MarkInstruction(Instruction instruction)
at Mono.Linker.Steps.MarkStep.MarkMethodBody(MethodBody body)
at Mono.Linker.Steps.MarkStep.ProcessMethod(MethodDefinition method)
at Mono.Linker.Steps.MarkStep.ProcessQueue()
at Mono.Linker.Steps.MarkStep.Process()
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.d__26.MoveNext() MyApp.Droid Build
我可以通过更改 Target Android Version
并按以下方式设置 Java Max Heap Size
来解决问题。
- Right click MyApp.Droid
- Properties > Android Options > Advanced (tab)
- Set 'Java Max Heap Size' to 1024m
升级到 Xamarin Forms 后我也遇到了这个问题。您需要确保您的 Target Framework 是最新版本。
为调试模式尝试此配置
更新 xamarin 版本后,我开始收到此错误。
首先清理项目然后重新构建它。为我固定。重建无效。
检查 Xamarin.forms 包文件夹中的 Mono android 子文件夹,有时会链接到旧的 Mono android 版本。把它换成新的。它对我有用。
我从 Monoandroid 8.0 更改为 Monoandroid 9.0 的某些 dll,例如 Xamarin.Android.Platforms 等。
尝试在 Xamarin 中构建应用发布模式时出现以下问题 Android。 为什么会出现,如何解决?
Severity Code Description Project File Line Source Suppression State Error
The "Link Assemblies" task failed unexpectedly.
Xamarin.Android.XamarinAndroidException: error XA2006: Reference to metadata item 'System.Void Android.Widget.TextView::SetTextAppearance(System.Int32)' (defined in 'Xamarin.Forms.Platform.Android, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null') from 'Xamarin.Forms.Platform.Android, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null' could not be resolved. ---> Mono.Cecil.ResolutionException: Failed to resolve System.Void Android.Widget.TextView::SetTextAppearance(System.Int32)
at Mono.Linker.Steps.MarkStep.MarkMethod(MethodReference reference)
at Mono.Linker.Steps.MarkStep.MarkInstruction(Instruction instruction) at Mono.Linker.Steps.MarkStep.MarkMethodBody(MethodBody body)
at Mono.Linker.Steps.MarkStep.ProcessMethod(MethodDefinition method)
at Mono.Linker.Steps.MarkStep.ProcessQueue()
at Mono.Linker.Steps.MarkStep.Process()
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.d__26.MoveNext() MyApp.Droid Build
我可以通过更改 Target Android Version
并按以下方式设置 Java Max Heap Size
来解决问题。
- Right click MyApp.Droid
- Properties > Android Options > Advanced (tab)
- Set 'Java Max Heap Size' to 1024m
升级到 Xamarin Forms 后我也遇到了这个问题。您需要确保您的 Target Framework 是最新版本。
为调试模式尝试此配置
更新 xamarin 版本后,我开始收到此错误。 首先清理项目然后重新构建它。为我固定。重建无效。
检查 Xamarin.forms 包文件夹中的 Mono android 子文件夹,有时会链接到旧的 Mono android 版本。把它换成新的。它对我有用。 我从 Monoandroid 8.0 更改为 Monoandroid 9.0 的某些 dll,例如 Xamarin.Android.Platforms 等。