.NET för Android-fel ADB0020

Exempelmeddelanden

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

Problematik

ADB0020 innebär att det inbyggda Android APK inte innehöll någon matchande Android-arkitektur för emulatorn eller enheten som den distribuerades till.

Det här meddelandet anger att adb (Android Debug Bridge) rapporterade ett INSTALL_FAILED_CPU_ABI_INCOMPATIBLE-fel eller ett INSTALL_FAILED_NO_MATCHING_ABIS-fel. adb är en del av Android SDK och används internt av .NET för Android för att kommunicera med Android-emulatorer och enheter. Läs mer i adbAndroid-dokumentationen.

Lösning

Ange MSBuild-egenskapen RuntimeIdentifier eller RuntimeIdentifiers så att den innehåller en .NET RID vars Android-ABI matchar enheten:

  • android-arm paketerar armeabi-v7a ABI:t.
  • android-arm64 paketerar arm64-v8a ABI:t.
  • android-x64 paketerar x86_64 ABI:t.

Följande .NET 11-inställning innehåller till exempel alla CoreCLR-arkitekturer som stöds:

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

Android NativeAOT är experimentellt och stöder samma tre RID:er.

Implementeringsanteckningar

Observera att ingenting i lagringsplatsen med öppen källkod https://github.com/dotnet/android genererar ADB0020, eftersom funktioner som felsökning och "snabb distribution" implementeras i de proprietära tilläggen för .NET för Android.