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

.NET 8 MAUI集成最新Firebase推送包遇JAVA0000重复类编译错误

解决.NET 8 MAUI集成Firebase推送时的androidx.collection重复定义编译错误

核心原因

你遇到的JAVA0000编译错误是因为Xamarin.Firebase.Dynamic.Links和Xamarin.Firebase.Messaging间接引入了不同版本的xamarin.androidx.collection.jvm和xamarin.androidx.collection.ktx,导致ArrayMapKt类重复定义。

解决方案

1. 强制统一androidx.collection依赖版本

在MAUI项目文件(.csproj)中添加以下PackageReference,强制两个冲突包使用相同的最新兼容版本:

<ItemGroup>
  <!-- 统一版本为1.3.0.2,与jvm包版本对齐 -->
  <PackageReference Include="Xamarin.AndroidX.Collection.Jvm" Version="1.3.0.2" />
  <PackageReference Include="Xamarin.AndroidX.Collection.Ktx" Version="1.3.0.2" />
</ItemGroup>

保存文件后重新加载项目。

2. 清理NuGet缓存与重建项目

执行命令清理本地NuGet缓存,避免旧版本依赖干扰:

dotnet nuget locals all --clear

手动删除项目目录下的bin和obj文件夹,最后重新生成整个解决方案。

3. 排查间接依赖来源

若以上方法无效,用命令查看所有间接依赖,确认哪个包引入了低版本的xamarin.androidx.collection.ktx:

dotnet list package --include-transitive

根据输出找到对应依赖包后,通过PackageReference强制覆盖其版本即可。

4. 调整Firebase包的依赖处理(可选)

如果统一版本仍有问题,可尝试在Firebase包引用中排除冲突的间接依赖:

<PackageReference Include="Xamarin.Firebase.Messaging" Version="123.3.1.2">
  <ExcludeAssets>runtime</ExcludeAssets>
</PackageReference>
<PackageReference Include="Xamarin.Firebase.Dynamic.Links" Version="121.2.0.2">
  <ExcludeAssets>runtime</ExcludeAssets>
</PackageReference>

注意:此操作需谨慎,确保不会移除必要的运行时依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 01:54:57