gpt4 book ai didi

android - NDK 将一个库链接到另一个库“无法加载库 : link_image[1966]: 1765 could not load needed library. ..”

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:13:22 26 4
gpt4 key购买 nike

首先我想告诉你我想做什么。我有一个 .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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com