Android 为什么,使用每个ABI的apk拆分,安装了与刚构建的apk不同的apk?
我正在使用Android Studio 2.2.2、Gradle 2.14.1和以下拆分:Android 为什么,使用每个ABI的apk拆分,安装了与刚构建的apk不同的apk?,android,android-studio,Android,Android Studio,我正在使用Android Studio 2.2.2、Gradle 2.14.1和以下拆分: splits { abi { enable true reset() include "armeabi-v7a", "mips", "x86" universalApk true } } 在华为EVA-L19和ALE-L21上尝试“运行‘应用’”时,它尝试安装一个与刚构建的apk不同的apk:构建“通用”并尝试安装“arme
splits {
abi {
enable true
reset()
include "armeabi-v7a", "mips", "x86"
universalApk true
}
}
在华为EVA-L19和ALE-L21上尝试“运行‘应用’”时,它尝试安装一个与刚构建的apk不同的apk:构建“通用”并尝试安装“armeabi-v7a”,导致:
07/07 13:04:07: Launching app
The APK file (...)\app-dev-armeabi-v7a-debug.apk does not exist on disk.
Error while Installing APK
07/07 13:04:07:启动应用程序
磁盘上不存在APK文件(…)\app-dev-armeabi-v7a-debug.APK。
安装APK时出错
更糟糕的是,当文件夹中有一个旧的V7版本时,由于它一直在安装同一个版本,在代码中进行更改而毫无效果,浪费了很多时间
我们不打算为64位体系结构单独构建;“arm64-v8a”的预期行为是构建和安装“armeabi-v7a”-这就是universalApk设置为false时发生的情况。它是残疾的
原因在哪里?如何解决?不是解决方案,而是一些解决方法: 从属性设置
universalApk
选项:
splits {
abi {
enable true
reset()
include "armeabi-v7a", "mips", "x86"
universalApk !project.hasProperty('notUniversal')
}
}
然后在您的Android Studio中
=>设置
=>构建、执行、部署
=>编译器
=>命令行选项:
添加属性标志:-PnotUniversal
之后:
当您尝试运行/调试应用程序时
构建类似于universalApk false
和armeabi-v7a
。将创建apk
但是,当您从命令行调用
/gradlew
或在TeamCity=>时,它将像universalApk true
一样被调用,并构建所有变体(使用universal)您能检查在运行->运行/调试配置->安装选项->Deploy@BrijeshMasrani运行|编辑配置| Android应用程序/应用程序,常规选项卡,部署目标选项显示“打开选择部署目标对话框”。取消选择“用于未来发布的相同设备”。安装选项为“默认APK”。这里的大部分内容都保留为默认值。为什么不生成armeabi-v7a版本的apk?由于ABI split已启用,studio正在尝试查找连接的手机的相关apk。还有一个问题,如果您正在拆分apk,为什么您仍然需要通用的apkapk@BrijeshMasraniarmeabi-v7a apk是在V7架构手机上运行时生成的。“运行”只生成一个拆分,即当前设备的拆分。至于Universal——不是我的电话,有人想要——或者过去想要——使用一些只能接受一个apk的测试相关工具。但我们不要太关注这个问题——要么我的配置有问题,要么是Studio的bug需要报告。