我有一个包含两个库的应用程序,其中两个库都依赖于本机库。两者都使用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的东西应该可以工作吗?
提前感谢任何支持:)
答案 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