You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

更新Firebase.Messaging.Service NuGet后Xamarin Android构建失败:无法解析DrawableWrapper

解决Xamarin Android更新Firebase.Messaging.Service后XALNK7000构建错误

问题场景

更新Xamarin Android项目的Firebase.Messaging.Service NuGet包后,出现XALNK7000链接错误,使用Visual Studio 2022 17.5.4,目标Android 13,构建日志如下:

C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Legacy.targets(649,5): error XALNK7000: Mono.Linker.MarkException: Error processing method: 'System.Void Xamarin.Forms.Platform.Android.ShellSearchView/ClipDrawableWrapper::.ctor(Android.Graphics.Drawables.Drawable)' in assembly: 'Xamarin.Forms.Platform.Android.dll' ---> Mono.Cecil.ResolutionException: Failed to resolve AndroidX.AppCompat.Graphics.Drawable.DrawableWrapper
5>C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Legacy.targets(649,5): error XALNK7000:    at Mono.Linker.Steps.MarkStep.HandleUnresolvedType(TypeReference reference)
5>C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Legacy.targets(649,5): error XALNK7000:    at Mono.Linker.Steps.MarkStep.MarkType(TypeReference reference)
5>C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Legacy.targets(649,5): error XALNK7000:    at MonoDroid.Tuner.MonoDroidMarkStep.MarkType(TypeReference reference)
5>C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Legacy.targets(649,5): error XALNK7000:    at Mono.Linker.Steps.MarkStep.MarkType(TypeReference reference)
5>C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Legacy.targets(649,5): error XALNK7000:    at MonoDroid.Tuner.MonoDroidMarkStep.MarkType(TypeReference reference)
5>C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Legacy.targets(649,5): error XALNK7000:    at Mono.Linker.Steps.MarkStep.ProcessMethod(MethodDefinition method)
5>C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Legacy.targets(649,5): error XALNK7000:    at Mono.Linker.Steps.MarkStep.ProcessQueue()
5>C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Legacy.targets(649,5): error XALNK7000:    --- End of inner exception stack trace ---
5>C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Legacy.targets(649,5): error XALNK7000:    at Mono.Linker.Steps.MarkStep.ProcessQueue()
5>C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Legacy.targets(649,5): error XALNK7000:    at Mono.Linker.Steps.MarkStep.ProcessPrimaryQueue()
5>C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Legacy.targets(649,5): error XALNK7000:    at Mono.Linker.Steps.MarkStep.Process()
5>C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Legacy.targets(649,5): error XALNK7000:    at Mono.Linker.Steps.MarkStep.Process(LinkContext context)
5>C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Legacy.targets(649,5): error XALNK7000:    at MonoDroid.Tuner.MonoDroidMarkStep.Process(LinkContext context)
5>C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Legacy.targets(649,5): error XALNK7000:    at Mono.Linker.Pipeline.ProcessStep(LinkContext context, IStep step)
5>C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Legacy.targets(649,5): error XALNK7000:    at Mono.Linker.Pipeline.Process(LinkContext context)
5>C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Legacy.targets(649,5): error XALNK7000:    at MonoDroid.Tuner.Linker.Process(LinkerOptions options, ILogger logger, LinkContext& context)
5>C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Legacy.targets(649,5): error XALNK7000:    at Xamarin.Android.Tasks.LinkAssemblies.Execute(DirectoryAssemblyResolver res)
5>C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Legacy.targets(649,5): error XALNK7000:    at Xamarin.Android.Tasks.LinkAssemblies.RunTask()
5>C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Legacy.targets(649,5): error XALNK7000:    at Microsoft.Android.Build.Tasks.AndroidTask.Execute() in /Users/runner/work/1/s/xamarin-android/external/xamarin-android-tools/src/Microsoft.Android.Build.BaseTasks/AndroidTask.cs:line 17
========== Rebuild All: 4 succeeded, 1 failed, 0 skipped ==========

错误原因

更新Firebase.Messaging.Service后,引入的AndroidX依赖版本与现有Xamarin.Forms依赖的AndroidX.AppCompat版本不兼容,导致链接器无法找到AndroidX.AppCompat.Graphics.Drawable.DrawableWrapper类型。

解决方案

  • 更新Xamarin.Forms到兼容版本:打开NuGet包管理器,将Xamarin.Forms更新至支持Android 13的最新稳定版,确保所有项目(包括共享项目和Android项目)的Xamarin.Forms版本一致。
  • 统一AndroidX依赖版本:检查项目中所有AndroidX相关NuGet包(尤其是AndroidX.AppCompat),将它们更新到相同的稳定版本,避免版本冲突。
  • 调整链接器行为(临时方案):右键Android项目 → 属性 → Android选项 → 链接器设置,将链接行为改为Sdk程序集仅或不链接,重新构建项目(注意:此方案会增大APK体积,仅作临时测试,最终需解决依赖问题)。
  • 清理重建项目:执行生成→清理解决方案,删除项目目录下的bin和obj文件夹,再重新生成解决方案。

内容的提问来源于stack exchange,提问作者Siddhant maurya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 19:07:01