我使用的是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上“运行'app'”时,它会尝试安装与刚刚构建的不同的apk:构建“universal”并尝试安装“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
当文件夹中存在旧的V7版本时,更糟糕的是,浪费时间使代码中的更改无效,因为它会继续安装相同的版本。
我们不打算为64位架构制作单独的版本; “arm64-v8a”的预期行为是构建和安装“armeabi-v7a” - 这就是当universalApk设置为false时会发生的情况。
Instant Run已停用。
原因在哪里以及如何解决?
答案 0 :(得分:1)
不是解决方案,但有些解决方法:
从属性设置universalApk
选项:
splits {
abi {
enable true
reset()
include "armeabi-v7a", "mips", "x86"
universalApk !project.hasProperty('notUniversal')
}
}
然后在您的Android Studio
=> Settings
=> Build, Execution, Deployment
=> Compiler
=> Command-line Options:
添加属性标记:-PnotUniversal
之后:
当您尝试Run/Debug app
构建时,universalApk false
和armeabi-v7a
会创建.apk。
但是当您从命令行或在TeamCity =>处拨打./gradlew
时它将被称为universalApk true
并构建所有变体(具有通用性)