定位 SDK Android Q 导致无法完成会话:INSTALL_FAILED_INVALID_APK:无法提取本机库,res=-2
Targeting SDK Android Q results in Failed to finalize session : INSTALL_FAILED_INVALID_APK: Failed to extract native libraries, res=-2
一旦我将目标 api 切换为 'Q',我就无法在 Android Q Emulator 上安装 APK。我收到错误:
Failed to finalize session : INSTALL_FAILED_INVALID_APK: Failed to
extract native libraries, res=-2
Android Studio (v3.3.2) 建议我先卸载apk。我尝试卸载 apk,但仍然出现相同的错误。如果我将目标 api 降级到 28.
,应用程序可以正常工作
发生这种情况是因为 zipalign 存在问题,请参阅 - https://issuetracker.google.com/issues/37045367。您需要在 AndroidManifest.xml
上的应用程序标签中设置 extractNativeLibs
<application
android:allowBackup="false"
android:label="@string/app_name"
android:extractNativeLibs="true"
...
>
如果您使用 adb
安装 apk,请尝试添加 -t
标志
adb install -t <path-to-apk>
如果您想要 android:extractNativeLibs="false"
,请使用带 -p
键的 zipalign 以便在 ZIP 内对 ELF 进行分页对齐:
zipalign -p 4 app.apk app-aligned.apk
我在 AWS Device Farm 中也遇到了这个错误。结果他们安装了 sdk 版本 21,我的 minSdkVersion
设置为 24。将我的 minSdkVersion
降低到 21 解决了这个问题。尝试在测试设备上安装 apk 时返回此错误。希望这有助于其他人在 android.
上设置设备农场
一旦我将目标 api 切换为 'Q',我就无法在 Android Q Emulator 上安装 APK。我收到错误:
Failed to finalize session : INSTALL_FAILED_INVALID_APK: Failed to extract native libraries, res=-2
Android Studio (v3.3.2) 建议我先卸载apk。我尝试卸载 apk,但仍然出现相同的错误。如果我将目标 api 降级到 28.
,应用程序可以正常工作发生这种情况是因为 zipalign 存在问题,请参阅 - https://issuetracker.google.com/issues/37045367。您需要在 AndroidManifest.xml
上的应用程序标签中设置extractNativeLibs
<application
android:allowBackup="false"
android:label="@string/app_name"
android:extractNativeLibs="true"
...
>
如果您使用 adb
安装 apk,请尝试添加 -t
标志
adb install -t <path-to-apk>
如果您想要 android:extractNativeLibs="false"
,请使用带 -p
键的 zipalign 以便在 ZIP 内对 ELF 进行分页对齐:
zipalign -p 4 app.apk app-aligned.apk
我在 AWS Device Farm 中也遇到了这个错误。结果他们安装了 sdk 版本 21,我的 minSdkVersion
设置为 24。将我的 minSdkVersion
降低到 21 解决了这个问题。尝试在测试设备上安装 apk 时返回此错误。希望这有助于其他人在 android.