迁移Xamarin.Forms到MAUI遇冲突,如何手动移除Android.Support.V4 NuGet包?
解决.NET MAUI迁移中Android.Support.V4与AndroidX冲突的重复类型错误
针对你遇到的The Java type mono.android.support.v4.media.session.MediaSessionCompat_OnActiveChangeListenerImplementor is generated by more than one managed type错误,以下是可行的解决方案:
强制全局使用AndroidX并启用Jetifier
打开MAUI项目的.csproj文件,添加以下配置,让项目自动将所有依赖中的Support库引用转换为AndroidX:<PropertyGroup> <AndroidUseAndroidX>true</AndroidUseAndroidX> <AndroidEnableJetifier>true</AndroidEnableJetifier> </PropertyGroup>Jetifier会自动处理第三方SDK的隐式Support库引用,无需手动修改SDK包。
更新或替换冲突的SDK
- 在NuGet包管理器的「依赖项」列表中,展开所有包找到间接引用Android.Support.V4的SDK,查看该SDK是否有适配AndroidX的新版本,更新到最新版本通常能解决冲突。
- 如果SDK无更新版本,可尝试在项目文件中排除该SDK的Support库引用,手动添加对应的AndroidX替代包:
注意:此操作需验证SDK功能是否正常,避免因包替换导致功能异常。<ItemGroup> <PackageReference Include="冲突SDK的包名" ExcludeAssets="All" /> <PackageReference Include="对应的AndroidX包名" Version="最新稳定版" /> </ItemGroup>
清理项目缓存
- 右键项目选择「清理」,删除项目目录下的
bin和obj文件夹。 - 执行命令清除NuGet缓存:
dotnet nuget locals all --clear - 重新生成项目。
- 右键项目选择「清理」,删除项目目录下的
确认Android版本配置
确保项目目标Android版本为Android 12 (API 31)及以上,MAUI对AndroidX的兼容性在高版本系统中更完善,同时在项目属性的Android选项中勾选「使用AndroidX」。
内容的提问来源于stack exchange,提问作者LePrinceDeDhump
相关产品推荐
相关产品推荐

