android – NDK-将一个库链接到另一个库“无法加载库:link_image [1966]:1765无法加载所需的库…”

android – NDK-将一个库链接到另一个库“无法加载库:link_image [1966]:1765无法加载所需的库…”,第1张

概述首先,我想告诉你我想做什么.我有一个.h文件和一个带有常用C代码的.c文件,我用它创建了一个带有 Android NDK的共享库.所以现在我有一个名为libtry.so的.so文件.此外,我想在我的Android Eclipse项目中使用本机代码.所以我创建了带有“Counter”类和内容的.java文件 public native static int Number(int n); 和 stat 首先,我想告诉你我想做什么.我有一个.h文件和一个带有常用C代码的.c文件,我用它创建了一个带有 Android NDK的共享库.所以现在我有一个名为libtry.so的.so文件.此外,我想在我的AndroID Eclipse项目中使用本机代码.所以我创建了带有“Counter”类和内容的.java文件

public native static int Number(int n);

static{   System.loadlibrary("test");}

然后我使用javah工具从.java文件创建一个C头文件.

之后,我为c-header文件创建了一个C源文件,我在其中实现了本机代码.

然后我使用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它不起作用.我的意思是如果我创建一个类“计数器”的对象,其中加载了库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无法加载所需的库…”全部内容,希望文章能够帮你解决android – NDK-将一个库链接到另一个库“无法加载库:link_image [1966]:1765无法加载所需的库…”所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1128631.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存