Android Studio:如何在x86上运行单个测试

时间:2014-10-31 19:54:40

标签: android android-studio

我对两种不同的体系结构使用两种不同的风格,因为我有非常大的本机库,我想要更小的二进制文件。

当我点击"运行"图标,Android Studio总是构建和部署" Arm"我们产品的味道。如果我在x86模拟器上运行它会失败,因为它没有x86的库。

有人知道如何说服Android Studio为特定的模拟器部署正确的版本吗?

2 个答案:

答案 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.

也许这会帮助您更轻松地管理测试