1. C++文件暴露给C的方法需要在前面加上

extern "C" char *getJsonStr(...) {...}

当然, 也可以在声明的时候指名该方法是C调用的方法

extern "C" char *getJsonStr(...);

声明可以在该文件头部声明, 也可以在该源文件的头文件中声明, 都有也可以

2. C调用C++的方法的时候需要声明所调用的外部方法

extern char *getJsonStr(...);

3. 使用到的.c和.cpp文件需要在Android.mk里面声明

LOCAL_SRC_FILES := \...mylog.c \native_json.cpp \

native_json.cpp 是方法所在的C++文件

4. Android studio不识别C++的解决方法

(stackoverflow中搜到的, 可以搜”Android ndk don’t recognize C++ header file”,
recognize可以替换成find或者resolve)

在module的Application.mk文件中修改下面属性的值

APP_STL = c++_static

5. C文件调用C++文件方法的时候, 不需要给使用extern “C”方法的c文件中添加C++的header file

这会导致Android studio无法同时编译C和C++, 个人觉得这个header file其实已经在Android.mk中的LOCAL_SRC_FILES属性中编译进去了, 在C语言中使用”extern”声明该extern “C”方法的时候, 可以被IDE正常识别, 加上C++的头文件反而无法编译.

Android ndk开发C调用C++相关推荐

  1. Android NDK开发: 通过C/C++调用第三方so库

    文章目录 一.编写so库代码 二.安装Android NDK 三.编译so库 3.1 编辑Android.mk 3.2 编辑Application.mk 3.3 编译 四.集成到Android工程中 ...

  2. Android NDK开发之旅(2):一篇文章搞定Android Studio中使用CMake进行NDK/JNI开发

    Android NDK开发之旅(2):一篇文章搞定android Studio中使用CMake进行NDK/JNI开发 (码字不易,转载请声明出处:http://blog.csdn.NET/andrex ...

  3. 【Android NDK 开发】Android Studio 使用 CMake 导入动态库 ( 构建脚本路径配置 | 指定动态库查找路径 | 链接动态库 )

    文章目录 I . CMake 引入动态库与静态库区别 II . Android Studio 中 CMake 引入动态库流程 III . 指定动态库查找路径 IV . 链接函数库 V . 完整代码示例 ...

  4. 【Android NDK 开发】Android Studio 使用 CMake 导入静态库 ( CMake 简介 | 构建脚本路径配置 | 引入静态库 | 指定静态库路径 | 链接动态库 )

    文章目录 I . CMake 简介 II . Android Studio 中 CMake 引入静态库流程 III . 指定 CMake 最小版本号 IV . 导入函数库 ( 静态库 / 动态库 ) ...

  5. 【Android NDK 开发】Android.mk 配置静态库 ( Android Studio 配置静态库 | 配置动态库与静态库区别 | 动态库与静态库打包对比 )

    文章目录 I . Android Studio 中使用 Android.mk 配置静态库 总结 II . 第三方动态库来源 III . 配置 Android.mk 构建脚本路径 IV . 预编译 第三 ...

  6. 【Android NDK 开发】Android.mk 配置动态库 ( Android Studio 配置动态库 | 动态库加载版本限制 | 本章仅做参考推荐使用 CMake 配置动态库 )

    文章目录 I . Android Studio 中使用 Android.mk 配置动态库 总结 II . 第三方动态库来源 III . 配置 Android.mk 构建脚本路径 IV . 预编译 第三 ...

  7. 【Android NDK 开发】NDK 交叉编译 ( Ubuntu 中交叉编译动态库 | Android Studio 中配置使用第三方动态库 )

    文章目录 I . 动态库 与 静态库 II . 编译动态库 III. Android Studio 使用第三方动态库 IV . Android Studio 关键代码 V . 博客资源 I . 动态库 ...

  8. 【Android NDK 开发】JNI 方法解析 ( JNIEnv *env 参数 )

    文章目录 一. JNI 方法解析 二. JNIEnv *env 参数解析 三. C 语言 环境中 JNIEnv *env 参数解析 四. C ++ 环境中 JNIEnv *env 参数解析 总结 : ...

  9. Android NDK开发method GetStringUTFChars’could not be resolved

    Android NDK开发method GetStringUTFChars'could not be resolved 图1 最近用到android的ndk,但在eclipse中提示method Ge ...

  10. OpenCV android sdk配置OpenCV android NDK开发实例

    OpenCV android sdk配置OpenCV android NDK开发实例 [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/det ...

最新文章

  1. 5MB的神经网络也高效,Facebook新压缩算法造福嵌入式设备
  2. 浅析移动端网站建设前都需要考虑哪些因素?
  3. 优化JavaScript代码
  4. 30个图片浏览插件收集
  5. java多线程启动BIO和NIO服务端同时启动接受图片和字符数据
  6. Go进程/线程/协程:单元 空间资源 切换 共享
  7. c oracle time,在C/C++中添加1个月到time_t的简单方法
  8. 装饰者模式在源码中的应用
  9. kubernetes英语怎么读_陷阱英语单词怎么读?
  10. 取得服务器支持的图形类型
  11. 使用feof()判断文件结束时会多输出内容的原因
  12. bzoj千题计划127:bzoj1041: [HAOI2008]圆上的整点
  13. 山东建筑大学校内购物网(SdaiBuy.com )V1.2 Beta
  14. 网管学习日记-浮动静态路由和负载均衡
  15. fzu2181(点的双连通分量+求奇环)
  16. rcnn fastrcnn fasterrcnn总结
  17. 【NOIP2017提高A组集训10.25】凤凰院凶真(dp)
  18. 玉米社:抖音玩法和运营机制,学会这些技巧,轻松上热门
  19. 淘宝店铺老店标识怎么显示 怎么淘宝老店标识申请
  20. Visual Studio 2008下载地址汇总及相关注册破解方法.

热门文章

  1. 2011年上半年国内优秀初创企业产品汇总
  2. dBm与功率(w)换算关系!
  3. matlab 读取odb,求教用C++方式读取abaqus的odb数据中的问题!!!
  4. 身份证识别鉴别证件真假
  5. 【附源码】计算机毕业设计JAVA大学生旅游拼团网站
  6. colmak键盘_萌神进化 IKBC 新POKER2机械键盘体验
  7. pyserial查看串口
  8. PlaySound 播放内存中的音频数据
  9. 百度火星坐标转wgs84
  10. matlab二重积分有奇异点,用MATLAB计算某些区域上二重积分.pdf