【发布时间】:2018-07-27 14:29:25
【问题描述】:
This question 和this post 提到使用armeabi-v7a ABI 过滤器构建的NDK 也适用于aarch64 Android 平台,因此我们不需要在ABI 过滤器列表中包含arm64-v8a。
但是,我在两个aarch64 平台上遇到了以下问题,一个是 Lenovo Phab-P1770M 和一个 Redmi 3S。
我在我的项目中使用 opencv 库。但是,当我将以下内容添加到我的 app.module
ndk {
abiFilters "armeabi-v7a", "x86"
}
我看到构建的 apk 在 lib/armeabi-v7a 和 lib/x86 文件夹中不包含 libopencv_java3.so。调用opencv 函数,显然也会崩溃,并出现错误libopencv_java3.so。
但是,当我将arm64-v8a 添加到上面的列表时,lib/arm64-v8a 文件夹也会在 APK 中创建(如预期的那样)。但是libopencv_java3.so 库仅存在于该目录中,并且正如预期的那样,该模块在运行时正确加载。
所以基本上,我想了解仅使用 ABI 过滤器 armeabi-v7a 是否也适用于 aarch64 平台。因为前面两篇文章都说应该,但是我的经验并没有证明。
谁能帮我理解我做错了什么?
【问题讨论】: