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

Xamarin Android原生项目升级MAUI后遇XALNS7028程序集加载错误

解决XALNS7028:无法加载Xamarin.Android.Support.v7.RecyclerView程序集问题

错误详情

严重性:活动错误
代码:XALNS7028
描述:System.IO.FileNotFoundException: 无法加载程序集‘Xamarin.Android.Support.v7.RecyclerView, Version=1.0.0.0, Culture=neutral, PublicKeyToken=’。该程序集可能不存在于Mono for Android配置文件中?
文件名: 'Xamarin.Android.Support.v7.RecyclerView.dll'

at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(AssemblyNameReference reference, ReaderParameters parameters) in /Users/runner/work/1/s/xamarin-android/external/Java.Interop/src/Java.Interop.Tools.Cecil/Java.Interop.Tools.Cecil/DirectoryAssemblyResolver.cs:line 278
at Mono.Cecil.MetadataResolver.Resolve(TypeReference type) in /Users/builder/jenkins/workspace/archive-mono/2020-02/android/release/external/cecil/Mono.Cecil/MetadataResolver.cs:line 111
at Mono.Cecil.TypeReference.Resolve() in /Users/builder/jenkins/workspace/archive-mono/2020-02/android/release/external/cecil/Mono.Cecil/TypeDefinition.cs:line 278
at Java.Interop.Tools.Cecil.TypeDefinitionCache.Resolve(TypeReference typeReference) in /Users/runner/work/1/s/xamarin-android/external/Java.Interop/src/Java.Interop.Tools.Cecil/Java.Interop.Tools.Cecil/TypeDefinitionCache.cs:line 20
at Java.Interop.Tools.Cecil.TypeDefinitionRocks.d__5.MoveNext() in /Users/runner/work/1/s/xamarin-android/external/Java.Interop/src/Java.Interop.Tools.Cecil/Java.Interop.Tools.Cecil/TypeDefinitionRocks.cs:line 36
at Java.Interop.Tools.Cecil.TypeDefinitionRocks.IsSubclassOf(TypeDefinition type, String typeName, IMetadataResolver resolver) in /Users/runner/work/1/s/xamarin-android/external/Java.Interop/src/Java.Interop.Tools.Cecil/Java.Interop.Tools.Cecil/TypeDefinitionRocks.cs:line 87
at MonoDroid.Tuner.FixAbstractMethodsStep.FixAbstractMethods(AssemblyDefinition assembly)
at Xamarin.Android.Tasks.LinkAssembliesNoShrink.RunTask()
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 25 
项目:OjtApp (net8.0-android) 
文件:C:\Program Files\dotnet\packs\Microsoft.Android.Sdk.Windows\34.0.113\tools\Xamarin.Android.Common.targets 
行:1481

解决方案

1. 替换旧Xamarin支持包为AndroidX

net8.0-android已全面迁移到AndroidX,旧的Xamarin.Android.Support.*包已被弃用:

  • 在NuGet包管理器中卸载所有包含Xamarin.Android.Support的包
  • 安装替代的AndroidX包:Xamarin.AndroidX.RecyclerView
  • 批量替换代码中的命名空间引用:将Android.Support.V7.Widget.RecyclerView改为AndroidX.RecyclerView.Widget.RecyclerView

2. 清理并重建项目

  • 删除项目根目录下的bin和obj文件夹
  • 执行命令:dotnet clean 清理项目缓存
  • 重新编译项目:dotnet build

3. 匹配框架与SDK版本

  • 打开项目属性,确认目标框架为net8.0-android
  • 检查Android SDK Manager中是否安装了34版本SDK(与项目依赖的Microsoft.Android.Sdk.Windows 34.0.113对应),缺失则补充安装

4. 手动修复项目文件引用

  • 打开项目的.csproj文件,删除所有指向Xamarin.Android.Support.v7.RecyclerView的引用标签
  • 添加正确的AndroidX包引用:
    <PackageReference Include="Xamarin.AndroidX.RecyclerView" Version="1.3.2.3" />
    
    版本号可根据最新稳定版调整

5. 调整链接器设置

  • 打开项目属性 → Android选项 → 链接器行为
  • 将链接器模式从“链接所有程序集”改为“仅链接SDK程序集”或“不链接”,尝试重新编译
  • 若需保留链接优化,在Linker.xml中添加规则:
    <assembly fullname="Xamarin.AndroidX.RecyclerView">
      <type fullname="AndroidX.RecyclerView.Widget.RecyclerView" preserve="all" />
    </assembly>
    

内容的提问来源于stack exchange,提问作者Lalit Chauhan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 15:19:54