.NET 8 MAUI集成Firebase推送通知遇重复类编译错误求助
解决.NET 8 MAUI集成FCM时androidx.collection.ArraySetKt重复定义编译错误
强制统一androidx.collection依赖版本
在项目的Platforms/Android/Android.csproj或根目录的Directory.Build.props中添加以下配置,通过强制指定相同版本的androidx.collection相关包,消除版本冲突:<ItemGroup> <PackageReference Include="Xamarin.AndroidX.Collection" Version="1.3.0.3" /> <PackageReference Include="Xamarin.AndroidX.Collection.Ktx" Version="1.3.0.3" /> </ItemGroup>版本号可选用NuGet上兼容.NET 8的最新稳定版,确保两个包版本完全一致。
排查并排除冲突依赖
在项目根目录执行命令,查看所有直接和间接依赖的包:dotnet list package --include-transitive找到引入不同版本androidx.collection的依赖包,通过
ExcludeAssets或强制覆盖版本解决冲突。例如,若某第三方包引入了旧版本,可在其PackageReference中添加配置:<PackageReference Include="冲突包名称" Version="对应版本"> <ExcludeAssets>all</ExcludeAssets> <PrivateAssets>all</PrivateAssets> </PackageReference>彻底清理项目缓存
除常规清理外,执行以下步骤彻底清除缓存:- 删除项目根目录下的
bin、obj文件夹 - 运行命令:
dotnet nuget locals all --clear - 重启开发工具后重新生成项目
- 删除项目根目录下的
检查FCM配置适配性
确保FCM配置完全适配.NET 8:- 使用兼容.NET 8的
Xamarin.Firebase.Messaging最新版本 - 检查AndroidManifest.xml中的服务配置,移除.NET 6时代的旧代码,确保服务类继承符合MAUI的生命周期要求
- 使用兼容.NET 8的
内容的提问来源于stack exchange,提问作者Matija Davidovic
相关产品推荐
相关产品推荐

