.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
相关产品推荐
相关产品推荐

