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

MAUI .NET 8 Android迁移编译异常求助:类重复定义问题

问题分析与解决方案

Xamarin.Android.Google.BillingClient包是否会引发该异常?

会。Xamarin.Android.Google.BillingClient 依赖旧版本的Xamarin.AndroidX.Collection.Ktx(如你遇到的1.2.0.9版本),而MAUI .NET 8默认引入更高版本的Xamarin.AndroidX.Collection.Jvm(1.4.0.4),两个包都包含androidx.collection.ArrayMapKt.class类,直接触发了重复定义的编译冲突。

解决方案

1. 全局统一AndroidX包版本

在项目的.csproj文件中添加全局版本控制节点,强制所有AndroidX相关包对齐到兼容版本:

<PropertyGroup>
  <AndroidXVersion>1.4.0.4</AndroidXVersion>
</PropertyGroup>

此配置会让所有依赖AndroidX的NuGet包自动使用指定版本,消除版本差异导致的冲突。

2. 显式排除冲突依赖

如果全局版本控制未生效,可在引用Xamarin.Android.Google.BillingClient时,排除旧版冲突包:

<PackageReference Include="Xamarin.Android.Google.BillingClient" Version="你的当前版本">
  <ExcludePackageReferences>
    <ExcludePackageReference>Xamarin.AndroidX.Collection.Ktx</ExcludePackageReference>
  </ExcludePackageReferences>
</PackageReference>

3. 清理缓存并重建项目

  • 在Visual Studio中执行生成 -> 清理解决方案
  • 打开命令提示符,执行dotnet nuget locals all --clear清除NuGet缓存
  • 执行dotnet restore重新还原包,再重新生成项目

4. 升级BillingClient到最新兼容版本

直接将Xamarin.Android.Google.BillingClient升级到官方最新版本,新版本通常会适配MAUI .NET 8的AndroidX依赖版本,从根源避免冲突。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 13:32:08