.NET for Android-Fehler ADB0020

Beispielnachrichten

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

Thema

ADB0020 bedeutet, dass die gebaute Android APK keine passende Android-Architektur für den Emulator oder das Gerät enthält, auf dem sie bereitgestellt wurde.

Diese Nachricht zeigt, dass adb (Android Debug Bridge) einen Fehler vom Typ INSTALL_FAILED_CPU_ABI_INCOMPATIBLE oder INSTALL_FAILED_NO_MATCHING_ABIS gemeldet hat. adb ist Teil des Android SDK und wird intern von .NET für Android für die Kommunikation mit Android-Emulatoren und -Geräten verwendet. Erfahren Sie mehr über adb in der Android-Dokumentation.

Lösung

Legen Sie die RuntimeIdentifier- oder RuntimeIdentifiers-MSBuild-Eigenschaft fest, um eine .NET-RID einzuschließen, deren Android-ABI mit dem Gerät übereinstimmt:

  • android-arm verpackt die armeabi-v7a-ABI.
  • android-arm64 bündelt die arm64-v8a ABI.
  • android-x64 verpackt die x86_64-ABI.

Die folgende .NET 11-Einstellung enthält beispielsweise alle unterstützten CoreCLR-Architekturen:

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

Android NativeAOT ist experimentell und unterstützt dieselben drei RIDs.

Implementierungshinweise

Beachten Sie, dass im Open Source-Repository https://github.com/dotnet/android nichts ADB0020 ausgibt, da Features wie Debugging und "schnelle Bereitstellung" in den proprietären .NET für Android-Ergänzungen implementiert werden.