|
10
|
| xsveda · 技术社区 · 11 年前 |
|
|
1
6
据我所知,这一直是预期行为,我很困惑为什么这以前对你有用。 链接器不会在每次loadLibrary调用时浏览完整的APK文件,而是在安装APK时提取正确的本地库。只使用一个架构目录,因此如果找到lib/armeabi-v7a,它甚至不会查找lib/armabi。 在一些较旧版本的android(4.0.3及更早版本)上存在一个已知的问题,即armeabi可能会被意外使用,而不是armeabi-v7a,但不确定这是否使这看起来对您有效。 参见例如。 https://android.googlesource.com/platform/ndk/+/532389e89c/docs/text/CPU-ARCH-ABIS.text 关于这一点的官方解释(第三节“Android平台上的ABI管理”,特别是第III.3节和第III.1节末尾的注释)。
编辑:实际上,在kitkat之前的android版本上,包管理器似乎可以从辅助ABI目录安装一些文件,即使主ABI目录已经存在。
http://albin.abo.fi/~mstorsjo/hellojni-test-abis.zip
是我测试示例的来源,并且
http://albin.abo.fi/~mstorsjo/hellojni-test-abis.apk
是它的二进制文件。此示例创建四个本机库,
在kitkat上安装时
|