23

一旦我将目标 api 切换到“Q”,我就无法在 Android Q Emulator 上安装 APK。我得到错误:

无法完成会话:INSTALL_FAILED_INVALID_APK:无法提取本机库,res=-2

Android Studio (v3.3.2) 建议我先卸载 apk。我尝试卸载apk,但仍然遇到相同的错误。如果我将目标 api 降级到 28,则应用程序工作。

4

3 回答 3

33

发生这种情况是因为 zipalign 存在问题,请参阅 - https://issuetracker.google.com/issues/37045367。您需要extractNativeLibs在 AndroidManifest.xml 上的 Application Tag 中设置

<application
        android:allowBackup="false"
        android:label="@string/app_name"
        android:extractNativeLibs="true"
...
>

如果您正在使用adb安装 apk 尝试添加-t标志

adb install -t <path-to-apk>
于 2019-03-15T15:58:46.523 回答
10

如果需要android:extractNativeLibs="false",请使用 zipalign with -pkey 以在 ZIP 中对 ELF 进行页面对齐:

zipalign -p 4 app.apk app-aligned.apk
于 2020-01-10T15:52:07.233 回答
1

我在 AWS Device Farm 中也遇到了这个错误。原来他们安装了 sdk 版本 21,并且我minSdkVersion的设置为 24。将我的版本降低minSdkVersion到 21 解决了这个问题。尝试在测试设备上安装 apk 时返回此错误。希望这对其他在 android 上设置设备场的人有所帮助。

于 2020-05-07T06:15:58.260 回答