Android开发新手ADB安装APK报错:INSTALL_FAILED_INVALID_APK
问题分析与解决
错误原因
你处理的是App Bundle生成的拆分APK集合(.apks格式),这类拆分APK是模块化拆分的:
base-master.apk是核心基础包,包含App的核心代码、Manifest配置等,是必须安装的base-armeabi_v7a.apk是架构适配包,对应armeabi-v7a设备- 各种dpi后缀的是资源适配包,对应不同屏幕密度的设备
单独安装架构包时,系统找不到核心基础包,就会抛出INSTALL_FAILED_INVALID_APK: Full install must include a base package错误。
解决方案
方案1:直接安装原始.apks文件(最简便)
ADB从Android 8.0开始原生支持安装.apks格式的拆分包集合,无需解压,直接执行:
adb install -r contero-0.1-armeabi-v7a-release.apks
系统会自动识别并安装适配你设备的必要拆分包。
方案2:用adb install-multiple安装指定拆分包
如果已经完成解压和签名,需要同时安装基础包+适配设备的架构包+适配设备的资源包:
- 先查看你的设备屏幕密度,确定需要的资源包:
adb shell wm density
- 进入
apk/splits目录,执行安装命令(示例:设备为xxhdpi时):
adb install-multiple -r base-master-aligned-debugSigned.apk base-armeabi_v7a-aligned-debugSigned.apk base-xxhdpi-aligned-debugSigned.apk
注意:
base-master包必须包含,缺失会导致安装失败。
方案3:合并拆分APK为单一文件(可选)
如果需要单一APK文件,可通过uber-apk-signer合并拆分包:
uber-apk-signer --apks apk/splits --out merged-apk
命令执行完成后,merged-apk目录下会生成合并后的单一APK,直接用adb install安装即可。
内容的提问来源于stack exchange,提问作者Alexey Orlov
相关产品推荐
相关产品推荐

