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

.NET MAUI Android构建失败:JAVA0000错误(类型重复定义)

解决.NET MAUI迁移中Android端JAVA0000(重复定义INotificationSideChannel)错误

核心原因

该错误源于项目中同时存在android.support.v4旧支持库与AndroidX依赖,导致类重复定义。即便已处理过部分AndroidX兼容问题,仍可能存在隐藏的间接依赖在引入旧支持库。

分步解决办法

1. 强制统一AndroidX并排除旧支持库

在Android项目的.csproj文件中添加以下配置,强制所有依赖使用AndroidX,并彻底移除旧support库引用:

<PropertyGroup>
  <AndroidUseAndroidX>true</AndroidUseAndroidX>
  <AndroidEnableJetifier>true</AndroidEnableJetifier>
</PropertyGroup>

<ItemGroup>
  <PackageReference Remove="Xamarin.Android.Support.*" />
</ItemGroup>

2. 排查并清理间接依赖

通过NuGet包管理器的「依赖项」视图查看完整依赖树,定位仍在引用Xamarin.Android.Support.v4的第三方包:

  • 优先将这类包升级到支持AndroidX的最新版本
  • 若无法升级,手动排除其旧依赖:
<PackageReference Include="目标问题包" Version="对应版本">
  <ExcludePackageReferences>Xamarin.Android.Support.v4</ExcludePackageReferences>
</PackageReference>

3. 清理缓存并重建项目

  • 删除项目目录下的bin、obj文件夹
  • 执行终端命令清理NuGet缓存:dotnet nuget locals all --clear
  • 重启IDE后重新生成整个解决方案

4. 检查自定义原生组件

如果项目包含自定义Android绑定库、.aar或.jar文件,确认这些组件是否依赖旧support库:

  • 替换为AndroidX版本的原生库
  • 若无法替换,依赖.NET MAUI的Jetifier自动转换(可手动验证转换是否生效)

日志与包引用排查提示

  • 从错误日志中定位重复类的来源文件路径,直接对应到具体依赖库
  • 列出所有PackageReference,逐一排查是否存在未升级的Xamarin.Forms相关包(如旧版Xamarin.Essentials、第三方UI组件等)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 02:34:55