當使用 CommunityToolkit.Maui 和 Microsoft.Maui.Controls 套件時,AndroidX 無法在 Maui 專案中編譯。並出現錯誤訊息:
MSBUILD : java error JAVA0000:
Error in /{User home}/.nuget/packages/xamarin.androidx.collection.jvm/1.4.0.4/buildTransitive/net8.0-android34.0/../../jar/androidx.collection.collect
ion-jvm.jar:androidx/collection/ArraySetKt.class:
Type androidx.collection.ArraySetKt is defined multiple times: /{User home}/.nuget/packages/xamarin.androidx.collection.jvm/1.4.0.4/buildTransitive/ne
t8.0-android34.0/../../jar/androidx.collection.collection-jvm.jar:androidx/collection/ArraySetKt.class, /{User home}/.nuget/packages/xamarin.androidx.
collection.ktx/1.2.0.9/buildTransitive/net6.0-android31.0/../../jar/androidx.collection.collection-ktx.jar:androidx/collection/ArraySetKt.class
Compilation failed
快速簡單的處理方案,使用安裝 nuget 套件 xamarin.androidx.fragment.ktx。新增此套件後,這個錯誤就解決了。
或者手動可在專案的 .csproj 中加入此行
<PackageReference Condition=”( ‘$(TargetFramework)’ == ‘net8.0-android’ )” Include=”Xamarin.AndroidX.Fragment.Ktx” Version=”1.8.6″ />