我有一个 C++ 库,并编写了一些 JNI 代码将其导出到 Android 世界。我还创建了一个使用我的 JNI 接口的 Android 应用程序。
为了使用这个库,我将所有 *.java 和 *.h / *.cpp 文件导入到我的 Eclipse App 项目中(到正确的文件夹中),然后我为 NDK 创建了 *.mk 文件。我使用 ndk-build 编译了该库,并使用 Eclipse 将其加载到目标设备中。该应用程序运行良好。
现在我想将应用程序从库中分离出来。所以,我编译了包含 JNI 接口的 Java 文件的 name.jar,然后我用 ndk-build 编译了 libname.so 用于 C++ 的东西。然后我将 name.jar 放入 newproject/libs 并将 libname.so 放入 newproject/libs/armeabi。考虑“newproject”我创建的没有库源代码的应用程序(我不想发布源代码,只发布 .jar 和 .so)。
结果是应用程序崩溃,内存转储到 LogCat。我在静态上下文中使用了 System.loadLibrary("name")。
任何人都可以帮助我吗?