【问题标题】:How to integrate libcurl in native android project and build using ndk on windows?如何在原生 android 项目中集成 libcurl 并在 Windows 上使用 ndk 构建?
【发布时间】:2014-08-19 09:11:51
【问题描述】:

我想在我的原生项目中使用 libcurl。如何集成这个库并使用 ndk 构建?是否有任何帖子可以指导我完成整个过程?

我尝试了官方网站上的文档,但这不起作用。仅供参考,我在 Windows 平台上。

【问题讨论】:

标签: android curl android-ndk libcurl


【解决方案1】:

在您的项目中创建一个 JNI 文件夹,并为每个架构(arm、armv7、x86 等)添加一个文件夹。将相应的 libcurl.so 文件放在相应的文件夹中。由于这是一个重建的共享二进制文件,您需要将其添加到您的 Android.mk 文件中

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := <Curl> //add the module name here. 
LOCAL_SRC_FILES := <libCurl.so> //add the .so file name here
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../jni/include

include $(PREBUILT_SHARED_LIBRARY)

创建一个 JNI C 文件,该文件使用来自 Curl 的库并从 Java 源代码调用本机代码。

static {


        System.loadLibrary("curl");

    }

如果您在 Windows 平台上,它应该不会有所作为。在所有平台上,将开源 liv 文件添加到 Android NDK 的过程几乎相同。

【讨论】:

  • 感谢您的回复。我无法生成 libcurl.so 文件。我使用 ndk 成功生成了静态库,但是在尝试共享库时失败了。
  • 可以使用预编译的静态库。检查此答案以了解如何链接它们stackoverflow.com/questions/5463518/…
  • 当然!如果它确实解决了您的问题,您能否为答案投票。谢谢
  • 您好,我正在尝试这种方法,但没有成功。我通过 JNI 在 C 源代码中使用它,由 NDK 20.x 和 Androud 3.5.3(和最新的 gradle)构建。请在stackoverflow.com/questions/33960385/…(由于提到的 C 代码中的错误导致尝试失败)和stackoverflow.com/questions/27092844/…(我当前的尝试)中查看我的 cmets。
【解决方案2】:

不知道 windows,但关于链接器魔法,请参阅中的链接 Integrating MuPDF as a library project (Android)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-15
    • 1970-01-01
    • 2023-03-23
    • 2019-08-12
    • 1970-01-01
    • 2017-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多