Android 为什么,使用每个ABI的apk拆分,安装了与刚构建的apk不同的apk?

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

我正在使用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:构建“通用”并尝试安装“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需要报告。