【问题标题】:"Link Assemblies" task failed unexpectedly issue while App build in Release Mode Xamarin Android在发布模式 Xamarin Android 中构建应用程序时,“链接程序集”任务意外失败
【发布时间】:2016-09-07 17:28:21
【问题描述】:

尝试在 Xamarin Android 中构建应用发布模式时遇到以下问题。 为什么会出现,如何解决?

严重性代码描述项目文件行源抑制状态错误

“链接程序集”任务意外失败。

Xamarin.Android.XamarinAndroidException:错误 XA2006:参考 元数据项'System.Void Android.Widget.TextView::SetTextAppearance(System.Int32)'(定义在 'Xamarin.Forms.Platform.Android,版本=2.0.0.0,文化=中性, PublicKeyToken=null') 来自'Xamarin.Forms.Platform.Android, 版本=2.0.0.0,文化=中性,PublicKeyToken=null' 不能 解决。 ---> Mono.Cecil.ResolutionException: 无法解决 System.Void Android.Widget.TextView::SetTextAppearance(System.Int32)

在 Mono.Linker.Steps.MarkStep.MarkMethod(MethodReference 参考)
在 Mono.Linker.Steps.MarkStep.MarkInstruction(指令指令) 在 Mono.Linker.Steps.MarkStep.MarkMethodBody(MethodBody 主体)
在 Mono.Linker.Steps.MarkStep.ProcessMethod(MethodDefinition 方法)
在 Mono.Linker.Steps.MarkStep.ProcessQueue()
在 Mono.Linker.Steps.MarkStep.Process()
在 Mono.Linker.Steps.MarkStep.Process(LinkContext 上下文)
在 Mono.Linker.Pipeline.Process(LinkContext 上下文)
在 MonoDroid.Tuner.Linker.Process(LinkerOptions 选项,LinkContext& 上下文)
在 Xamarin.Android.Tasks.LinkAssemblies.Execute()

---内部异常堆栈跟踪结束---

在 Xamarin.Android.Diagnostic.Error(Int32 代码,异常 innerException, 字符串消息,Object[] args)
在 Xamarin.Android.Tasks.LinkAssemblies.Execute()
在 Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() 在 Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext() MyApp.Droid Build

【问题讨论】:

  • 我遇到了同样的问题,调试工作正常,直到出现该错误。重新启动VS没有帮助。更改 Solution Platform 就成功了。
  • 对我来说,这与早期警告 NU1605 有关检测到的软件包降级有关。这是无意的,所以在编辑 csproj 文件以使用正确的版本后,Release 版本突然不再抱怨解析 System.Void 失败

标签: android xamarin xamarin.android release


【解决方案1】:

我可以通过更改Target Android Version 并按以下方式设置Java Max Heap Size 来解决此问题。

  1. 右键单击 MyApp.Droid
  2. 属性 > Android 选项 > 高级(选项卡)
  3. 将“Java 最大堆大小”设置为 1024m

【讨论】:

【解决方案2】:

升级到 Xamarin Forms 后我也得到了这个。您需要确保您的 Target Framework 是最新版本。

【讨论】:

    【解决方案3】:

    在调试模式下试试这个配置

    【讨论】:

    • 是的,通过禁用链接器来修复它。这不是预期的行为。所以这不是一个解决方案。
    【解决方案4】:

    更新 xamarin 版本后,我开始收到此错误。 首先清理项目,然后再次构建它。为我固定。重建不起作用。

    【讨论】:

      【解决方案5】:

      检查 Xamarin.forms 包文件夹中的 Mono android 子文件夹,有时会链接到旧的 Mono android 版本。将其更改为新的。它对我有用。 我将某些 dll 的 Monoandroid 8.0 更改为 Monoandroid 9.0,例如 Xamarin.Android.Platforms 等。

      【讨论】:

        猜你喜欢
        • 2017-12-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-08
        • 1970-01-01
        • 1970-01-01
        • 2013-12-11
        • 2016-09-01
        相关资源
        最近更新 更多