交叉编译的libxml的Android系统loadlibary错误

时间:2013-04-10 17:36:49

标签: android android-ndk libxml2

我通过改变CC,CFALGS LDFLAGS与android ndk交叉编译了libxml2-2.90 for android。并运行config和make,它编译成功。

然后我在native c中编写了基于libxml2的简单示例,并编写了包含上述库的Android.mk文件,并包含编译共享库。

1.我使用了ndk-build脚本并成功编译了本机libxml应用程序

  1. 我把这两个lib放在android project / libs / armeabi
  2. 然后我在android java应用程序代码中加载了这两个库

    的System.loadLibrary( “XML2”); //libxml2.so.2.9.0

    的System.loadLibrary( “samplexml2”); //libsamplexml2.so

  3. 但是当我运行我的应用程序时,我得到了android app的以下运行时错误。

    Exception Ljava / lang / UnsatisfiedLinkError;在初始化Lcom / example / xmlsample / XmlParse;

    时抛出

    引起:java.lang.UnsatisfiedLinkError:无法加载库:link_image [1891]:37无法为“libsamplexml2.so”加载所需的库'libxml2.so.2'(load_library [ 1093]:未找到库'libxml2.so.2'

    请帮助如何正确链接xml2 lib ..

1 个答案:

答案 0 :(得分:0)

为Android进行交叉编译时,必须禁用为库设置soname。如果您使用automake,请将-version-info SOME:VERSION:NUMBER替换为-avoid-version,然后重新配置并重新编译库(libxml)和所有依赖项(libsamplexml)。

相关问题