При таргетинге на SDK для Android Q завершился сеанс не удалось: INSTALL_FAILED_INVALID_APK: не удалось извлечь собственные библиотеки, res=-2
Как только я переключаю свой целевой API на "Q", я не могу установить APK на Android Q Emulator. Я получаю ошибку:
Не удалось завершить сеанс: INSTALL_FAILED_INVALID_APK: Не удалось извлечь собственные библиотеки, res = -2
Android Studio (v3.3.2) рекомендует сначала удалить apk. Я попытался удалить apk, и я все еще получаю ту же ошибку. Приложение работает, если я понижаю целевой API до 28.
1 ответ
Это происходит из-за проблемы с zipalign, см. https://issuetracker.google.com/issues/37045367. Вам нужно установить extractNativeLibs
в теге приложения на AndroidManifest.xml
<application
android:allowBackup="false"
android:label="@string/app_name"
android:extractNativeLibs="true"
...
>
Если вы используете adb
установить апк попробуйте добавить -t
флаг
adb install -t <path-to-apk>
Если ты хочешь android:extractNativeLibs="false"
, используйте zipalign с -p
ключ для выравнивания страниц в формате ELF в ZIP:
zipalign -p 4 app.apk app-aligned.apk
Я также получил эту ошибку в AWS Device Farm. Оказывается, у них установлена sdk версии 21 и мойminSdkVersion
был установлен на 24. Понижение моего minSdkVersion
до 21 решила это. Эта ошибка возвращалась при попытке установить apk на тестовое устройство. Надеюсь, это поможет всем, кто настраивает ферму устройств на Android.