Android için .NET hatası ADB0020

Örnek iletiler

error ADB0020: The package does not support the CPU architecture of this device.

Sorun

ADB0020, oluşturulmuş Android APK'sinin dağıtıldığı emülatör veya cihazda eşleşen bir Android mimarisi içermediğini ifade eder.

Bu mesaj, adb (Android Hata Ayıklama Köprüsü) INSTALL_FAILED_CPU_ABI_INCOMPATIBLE veya INSTALL_FAILED_NO_MATCHING_ABIS hatası bildirdiğini gösterir. adb Android SDK'sının bir parçasıdır ve Android öykünücüleri ve cihazlarıyla iletişim kurmak için Android için .NET tarafından dahili olarak kullanılır. adb hakkında daha fazla bilgi edinin.

Çözüm

RuntimeIdentifier veya RuntimeIdentifiers MSBuild özelliğini, Android ABI cihazla eşleşen bir .NET RID içerecek şekilde ayarlayın:

  • android-arm, armeabi-v7a ABI'sini paketler.
  • android-arm64, arm64-v8a ABI'sini paketler.
  • android-x64, x86_64 ABI'yi paketler.

Örneğin, aşağıdaki .NET 11 ayarı desteklenen tüm CoreCLR mimarilerini içerir:

<PropertyGroup>
  <RuntimeIdentifiers>android-arm;android-arm64;android-x64</RuntimeIdentifiers>
</PropertyGroup>

Android NativeAOT deneyseldir ve aynı üç RID'yi destekler.

Uygulama notları

Hata ayıklama ve "hızlı dağıtım" gibi özellikler Android eklemeleri için özel .NET'te uygulandığından, açık kaynak https://github.com/dotnet/android deposundaki hiçbir şeyin ADB0020 yaymadığını unutmayın.