我正在开发一个 Android 项目,我们在其中使用 C++ 代码进行了所有服务器调用,因为它要同时在 iOS 和 Android 上运行。 iOS 应用程序在其 native 环境中具有 cURL 功能,但我们的 Android 应用程序甚至无法获得正确的包含工作。它既存在于我们的 C++ 文件中,无法解析 std::string 之类的内容,也存在于 cURL 库中,无法解析 size_t 等。
我看过其他各种帖子,并尝试了很多东西,唯一似乎有帮助的是通过路径和符号从 NDK 导入不同的库,但根据这个 link ,这是一个过时的修复程序,我仍然没有得到它的工作,即使有大量的进口。
失败的include是 ,然后就是一大堆member_declaration not found,和unresolved variable的错误。
jstring 是否等同于 std::string,还是完全错误。
如有任何帮助,我们将不胜感激!
最佳答案
在您的 JNI 文件夹中的 Application.mk 中添加:
APP_STL := gnustl_static
这将添加带有 std::string、size_t 等的 STL 库。
关于带有 cURL 的 Android NDK 包含错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19267319/