Nut*_*mic 1 android android-ndk
我有一个包含本机二进制文件的应用程序。目前,我们只有ARMv5和x86二进制文件。使用这些,我们将二进制文件放入src/main/jniLibs/armeabi/libsyncthing.so和src/main/jniLibs/x86/libsyncthing.so,在所有设备上都可以正常工作。
现在,我们要添加一个附加的ARMv8二进制文件,该文件位于中src/main/jniLibs/arm64-v8a/libsyncthing.so。根据此指南,这是正确的子文件夹。但是,当我在LG G4(支持ARMv8)上安装apk时,/lib/文件夹中未安装任何二进制文件,因此该应用程序无法正常工作。
我在这里做错了什么?
在这里,您可以看到二进制文件都包含在apk中:
您可以在Github上的PR中看到完整的代码。二进制文件不包括在其中,但可以使用生成./gradlew buildNative。
我终于自己弄清楚了。问题是我在做
binary = context.getApplicationInfo().dataDir + "/lib/libsyncthing.so";
事实证明,ARMv8库存储在其他位置,因此失败了。相反,我不得不使用以下代码:
binary = context.getApplicationInfo().nativeLibraryDir + "/libsyncthing.so";
| 归档时间: |
|
| 查看次数: |
690 次 |
| 最近记录: |