4

我有一个 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")。

任何人都可以帮助我吗?

4

1 回答 1

2

我的程序没问题。我发现了问题:我的应用程序正在加载库并且它正在运行 C++ 代码。顺便说一句,崩溃发生在 socket() 调用的早期。我必须在清单文件中设置 INTERNET 权限。

于 2012-09-13T09:28:25.093 回答