我想通过本机代码进行 DSP 计算。这在模拟器(Android 4.2.2)中运行良好。但在一些设备(Android 7 和 9)上,由 NDK 构建的库让应用程序在执行System.loadLibrary时直接崩溃。但是:当我将下载的库放入我的 APK 时,它会毫无问题地加载。
我承认,对于主要应用程序,我在 Windows 上使用旧的 Eclipse IDE,目标是 API 26。我的 NDK 是一个小型 r7,在 Ubuntu 上运行。但是我的库只对标准 c 中的字节数组进行计算,这里没有访问 Android 的东西。
本机代码编译时没有警告和错误,是为 armeabi 和 armeabi-v7a 构建的。在 APK 中,libxyz.so文件位于正确的文件夹中。导出函数的名称应该是正确的。但是,即使在 Java 类中没有为它们声明并且没有调用任何 native,崩溃也会直接发生在static { System.loadLibrary("libxyz.so"); }
我的库二进制文件可以不兼容吗?
谢谢你的帮助!
更新:这些库确实不兼容,请参阅下面的评论。