2014-02-26 92 views
1

我想在ubuntu上用ndk r7构建libcurl并获取libcurl.so.5.3.0,它的soname是libcurl.so.5。我也有一个使用libcurl.so的libxxx.so。当我使用System.loadLibrary(“卷曲”);和System.loadLibrary(“xxx”);在Android应用程序中,我得到了E/AndroidRuntime(361):引起:java.lang.UnsatisfiedLinkError:无法加载libcurl.so.5:findLibrary返回null。有谁知道如何在没有soname的情况下构建libcurl.so,或者如何在Java中加载libcurl.so.5。 我注意到,在构建libcurl的结尾附近,有一行-Wl,-soname -Wl,libcurl.so.5 -o .libs/libcurl.so.5.3.0。我不知道这是从哪里来的。非常感谢!构建没有soname的libcurl

回答

2

看来libcurl.so是libcurl.so.5的软链接,而System.loadLibrary找不到真正的libcurl.so.5。

您可以尝试:将libcurl.so.5重命名为libcurl.so。并尝试从Java再次加载它。

另一种方法:您可以直接使用libcurl.a而不是libcurl.so在您的项目中构建它。所以你不需要再加载Java中的libcurl.so。

希望它有帮助。