.NET MAUI集成Firebase时因androidx.collection.ArraySetKt重复定义编译失败
解决.NET MAUI安装Xamarin.Firebase.Auth后androidx.collection.ArraySetKt重复定义问题
从错误日志可见,尽管你手动指定了AndroidX.Collection包的1.4.2版本,但编译时仍在引用旧版本的Xamarin.AndroidX.Collection.Jvm(1.4.0.5)和Xamarin.AndroidX.Collection.Ktx(1.2.0.9),这是Firebase.Auth的传递依赖与手动引用包的版本冲突导致的。以下是具体解决步骤:
步骤1:清理NuGet缓存
旧版本包的缓存会干扰依赖解析,先执行清理命令:
dotnet nuget locals all --clear
步骤2:调整项目依赖配置
修改.csproj中Android目标框架的依赖项,排除Firebase.Auth传递的冲突包,只保留统一版本的AndroidX.Collection:
<ItemGroup Condition="'$(TargetFramework)' == 'net8.0-android'"> <PackageReference Include="Xamarin.Firebase.Auth" Version="122.3.1.3"> <ExcludePackageReferences> <ExcludePackageReference Include="Xamarin.AndroidX.Collection.Jvm" /> <ExcludePackageReference Include="Xamarin.AndroidX.Collection.Ktx" /> </ExcludePackageReferences> </PackageReference> <PackageReference Include="Xamarin.AndroidX.Collection" Version="1.4.2" /> </ItemGroup>
说明:新版本的
Xamarin.AndroidX.Collection已整合Jvm和Ktx的功能,无需单独引用后两者。
步骤3:统一所有AndroidX包版本
打开NuGet包管理器,筛选项目中所有Xamarin.AndroidX.*包,确保它们的版本完全一致(建议使用与.NET 8兼容的最新稳定版),避免版本不一致引发的依赖冲突。
步骤4:清理并重新生成项目
- 右键项目选择清理
- 删除项目根目录下的
bin和obj文件夹 - 重新生成解决方案
内容的提问来源于stack exchange,提问作者Dennis Liljedahl
相关产品推荐
相关产品推荐

