Gradle排除arm64库

时间:2015-09-07 14:49:29

标签: android android-gradle

我有一个包含两个库的应用程序,其中两个库都依赖于本机库。两者都使用gradle包含,因此结构如下所示:

MyApp的

- Libary1
-- x86, armeabi native libs
- Library2
-- Library3
--- x86, armeabi, arm64-v8a

我想删除arm64支持,因为我还需要那个* .so for Library1,我没有。 (所以目前我在arm64设备上得到了一个UnsatisfiedLinkError)

我已经尝试过这个:(使用abiFilters“armeabi”,“x86”) https://stackoverflow.com/a/30799825/3325222

但我仍然得到我的apk中的arm64文件夹和* .so文件...有什么我想念的吗?如果本机库在依赖层次结构中更深入,那abiFilter的东西应该可以工作吗?

提前感谢任何支持:)

2 个答案:

答案 0 :(得分:18)

我通过排除刚刚添加到我不想支持的架构中的特定* .so文件找到了解决方案:

packagingOptions {
  exclude 'lib/arm64-v8a/lib.so'
  exclude 'lib/mips/lib.so'
}

答案 1 :(得分:3)

https://stackoverflow.com/a/30799825/3325222在类似的情况下为我工作。但是,该解决方案实际上已被弃用。

实验性Gradle 2.5中有新的SDK支持,它支持体系结构过滤器:http://tools.android.com/tech-docs/new-build-system/tips