Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Messaggi di esempio
error ADB0020: The package does not support the CPU architecture of this device.
Problema
ADB0020 significa che l'APK Android compilato non contiene un'architettura Android corrispondente per l'emulatore o il dispositivo in cui è stato distribuito.
Questo messaggio indica che adb (Android Debug Bridge) ha segnalato un errore di INSTALL_FAILED_CPU_ABI_INCOMPATIBLE o di INSTALL_FAILED_NO_MATCHING_ABIS.
adb fa parte di Android SDK e viene usato internamente da .NET per Android per comunicare con emulatori e dispositivi Android. Altre informazioni sono disponibili adb nella documentazione di Android.
Soluzione
Impostare la proprietà MSBuild RuntimeIdentifier o RuntimeIdentifiers in modo da includere un RID .NET il cui ABI Android corrisponde a quello del dispositivo:
-
android-armpacchettizza l'ABIarmeabi-v7a. -
android-arm64crea un pacchetto dell'interfacciaarm64-v8aABI. -
android-x64crea il pacchetto ABIx86_64.
Ad esempio, l'impostazione .NET 11 seguente include tutte le architetture CoreCLR supportate:
<PropertyGroup>
<RuntimeIdentifiers>android-arm;android-arm64;android-x64</RuntimeIdentifiers>
</PropertyGroup>
Android NativeAOT è sperimentale e supporta gli stessi tre RID.
Note sull'implementazione
Si noti che nulla nel repository open source https://github.com/dotnet/android genera ADB0020, poiché le funzionalità come il debug e la "distribuzione rapida" vengono implementate in .NET proprietario per le aggiunte di Android.