我对两种不同的体系结构使用两种不同的风格,因为我有非常大的本机库,我想要更小的二进制文件。
当我点击"运行"图标,Android Studio总是构建和部署" Arm"我们产品的味道。如果我在x86模拟器上运行它会失败,因为它没有x86的库。
有人知道如何说服Android Studio为特定的模拟器部署正确的版本吗?
答案 0 :(得分:5)
尝试使用 build.gradle 中的abiFilter
属性。
This post解释了如何在不同的体系结构中使用本机库:
在每个架构构建一个APK,并且做得好!它说:
使用abiFilter
属性,使用flavor可以非常轻松地为每个体系结构构建一个APK。
尝试将此添加到 gradle.build :
android{
...
productFlavors {
x86 {
ndk {
abiFilter "x86"
}
}
mips {
ndk {
abiFilter "mips"
}
}
armv7 {
ndk {
abiFilter "armeabi-v7a"
}
}
arm {
ndk {
abiFilter "armeabi"
}
}
fat
}
}
您可能只需要arm
& x86
。
然后,使用
将项目与gradle文件同步Tools > Android > Sync Project with Gradle Files
现在您应该能够在构建变体之间切换,并且应该生成一个基于架构的APK。
选择左下角的Build Variants
。您应该能够在 Build Variant 下拉列表中的不同体系结构之间切换。
希望这有帮助。
答案 1 :(得分:0)
首先,现在有一种更简单的方法可以在不使用口味的情况下分发到不同的ABI - 这是Android gradle的新功能0.13.0 (2014/09/18)
- http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
它说:Using the new Split mechanism, building a hdpi, and an mdpi version of the same app will share a lot of the tasks (like javac, dx, proguard). Additionally, it will be considered a single variant and the same test app will be used to test every multi-apk.
也许这会帮助您更轻松地管理测试