- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
首先我想告诉你我想做什么。我有一个 .h 文件和一个 .c 文件,其中包含常用的 C 代码,我用它们创建了一个带有 Android NDK 的共享库。所以现在我有一个名为 libtry.so 的 .so 文件。此外,我想在我的 Android Eclipse 项目中使用 native 代码。所以我创建了带有“Counter”类和内容的 .java 文件
public native static int Number(int n);
和
static
{
System.loadLibrary("test");
}
然后我使用 javah 工具从 .java 文件创建一个 C 头文件。
然后我为 C 头文件创建了一个 C 源文件,我在其中实现了 native 代码。
然后我用 LOCAL_MODULE := test
创建了一个包含这两个文件的共享库,这样文件将被命名为 libtest.so
。但重点是,我想将我一开始创建的共享库 libtry.so 链接到这个共享库。
所以在 libtest.so 的 Android.mk 文件中,我放置了 LOCAL_LDLIBS := -L/root/Android/Samples/Test/libs/-ltry
。
实际上这是可行的,因为我可以使用 ndk-build 编译这个 Android.mk 文件。
但是现在在我的 Eclipse 项目中,如果我想使用库 libtest.so 它不起作用。我的意思是,如果我创建一个类“Counter”的对象,其中加载了库 libtest.so,
我收到错误:“无法加载库:link_image[1966]:1752 无法为‘libtest.so’加载所需的库‘libtry.so’”
。
我做错了什么?提前致谢。
最佳答案
您正在将一个库链接到一个库。在 Java 代码中,它们必须以相反的顺序显式加载,例如
static
{
System.loadLibrary("dependencylib"); // try
System.loadLibrary("mainlib"); // test
}
答案取自 here
关于android - NDK 将一个库链接到另一个库“无法加载库 : link_image[1966]: 1765 could not load needed library. ..”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11222253/
首先我想告诉你我想做什么。我有一个 .h 文件和一个 .c 文件,其中包含常用的 C 代码,我用它们创建了一个带有 Android NDK 的共享库。所以现在我有一个名为 libtry.so 的 .s
我正在编写一个 android 项目,它具有帮助 java 层的 native 层,并且卡在了一个地方,当我尝试执行 System.loadLibrary 时,它抛出无法链接它的错误。 我正在使用 T
我是一名优秀的程序员,十分优秀!