转载地址:http://m.blog.csdn.net/blog/updowndown/48712657

概述


本文描述了在Eclipse环境下进行NDK开发时遇到的问题及相关解决方法。
问题列表:
* Unresolved inclusion: <jni.h>Unresolved inclusion: <vector>
* memcpyInvalid arguments问题

这几个问题不影响程序的编译,但会导致无法在Eclipse中进行运行程序等操作。

开发环境


  • Windows XP
  • Eclispe Luna
  • cdt-8.6.0
  • adt-23.0.4
  • android-ndk-r10e
  • android-sdk_r23.0.2-windows

注:解决问题前请确保项目无误,可使用ndk-build编译。且Eclipse SDK、NDK路径已配置完毕

Unresolved inclusion问题


错误描述

项目添加NDK支持后,项目中包含的平台相关头文件及std库头文件等均出现Unresolved inclusion提示。
使用ndk-build命令进行编译并没有错误提示。

问题解决

清除旧的NDK配置

关闭Eclispe,删除项目目录下的.cporject文件。
修改.project文件,删除包含’cdt’的配置段。

<buildCommand><name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name><triggers>clean,full,incremental,</triggers><arguments></arguments>
</buildCommand>
<buildCommand><name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name><triggers>full,incremental,</triggers><arguments></arguments>
</buildCommand>
<nature>org.eclipse.cdt.core.cnature</nature>
<nature>org.eclipse.cdt.core.ccnature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>

注:若尚未添加NDK支持,可忽略此步骤

重新添加NDK支持

项目右键Android Tools -> Add Native Support...

添加NDK库相关路径

在菜单栏Project -> Propertis中,C/C++ General -> Paths and Symbols下,Include标签页下,添加如下路径。

$NDK_PATH\platforms\android-19\arch-arm\usr\include
$NDK_PATH\sources\cxx-stl\gnu-libstdc++\4.8\include
$NDK_PATH\sources\cxx-stl\gnu-libstdc++\4.8\libs\armeabi-v7a\include

注:此时,Unresolved inclusion提示应已经消失,但仍存在Symbol 'string' could not be resolved之类提示。

重建C/C++索引

菜单栏Project -> C/C++ Index -> Rebuld
至此,Resolve相关问题全部解决完毕。

注:网上部分教程未提到添加$NDK_PATH\sources\cxx-stl\gnu-libstdc++\4.8\libs\armeabi-v7a\include,不添加此路径无法解决Symbol 'string' could not be resolved问题。

Invalid arguments问题


错误描述

调用memcpyvector.resize()等函数时,Eclipse提示

Invalid arguments '
Candidates are:
void resize(?)
void resize(?, const float &)
' 

临时解决方案

Project -> Propertis中,修改C/C++ General -> Code Analysis配置,将Invalid arguments项由Error修改为Warning
尽管该方法会解决我们的问题,但会导致真正的Invalid arguments错误也会被忽略。

注:网络上有人提到在C/C++ General -> Preprocessor...中,修改’Provicer’页签下的配置,勾选CDT GCC Built-in Complier Settings[Shared]选项,但我测试并没有解决该问题。

参考资料


  • Eclipse giving me Invalid arguments ’ Candidates are: void * memset(void *, int, ?) ’ though I know the args are good
  • Unresolved inclusion error while using NDK
  • 解决NDK开发中Eclipse报错“Unresolved inclusion jni.h”的最终方法
  • Code analysis “Invalid Argument” reports invalid argument which is valid

Invalid arguments问题相关推荐

  1. Android中JNI编程出现“Invalid arguments ' Candidates are: void * malloc(?) '”的解决方案

    1 致谢 感谢Lyndon1115网友提供的帮助 链接如下:http://blog.csdn.net/donglynn/article/details/25242459 2 问题描述 今天又在继续JN ...

  2. mac中执行命令ifconfig: invalid arguments

    在mac电脑上执行ifconfig命令莫名其妙报错: hu_shouzheng@MacBook-Pro ~ % ifconfig en0 ifconfig: invalid arguments 句意是 ...

  3. implode(): Invalid arguments passed

    2019独角兽企业重金招聘Python工程师标准>>> implode("\n",$msg) 报错:implode(): Invalid arguments pa ...

  4. 问题-fuxi job failed ,cased by:Invalid decimal format.

    中台插数据问题 问题一 问题二 问题三 问题一 在跑SQL脚本从贴源层网共享层表插入数据时报如下错误 错误:FAILED: ODPS-0010000:System internal error -fu ...

  5. c# 读hex_c#十六进制到位转换(c# hex to bit conversion)

    c#十六进制到位转换(c# hex to bit conversion) 我试图将64位数字的十六进制表示(例如字符串"FFFFFFFFF" )转换为二进制表示( "11 ...

  6. 常见面试题:重写strcpy() 函数原型

    已知strcpy函数的原型是 char* strcpy(char* strDest,const char* strSrc); 1.不调用库函数,实现strcpy函数 2.解释为什么要返回char*; ...

  7. TensorRT和PyTorch模型的故事

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨伯恩legacy 来源丨https://zhuanlan.zh ...

  8. 如何使用TensorRT对训练好的PyTorch模型进行加速?

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨伯恩legacy@知乎 来源丨https://zhuanlan.zhihu.com/p/8831 ...

  9. Zookeeper C API 指南一(转)

    Zookeeper 监视(Watches) 简介 Zookeeper C API 的声明和描述在 include/zookeeper.h 中可以找到,另外大部分的 Zookeeper C API 常量 ...

  10. webpack-插件机制杂记

    系列文章 Webpack系列-第一篇基础杂记 webpack系列-插件机制杂记 前言 webpack本身并不难,他所完成的各种复杂炫酷的功能都依赖于他的插件机制.或许我们在日常的开发需求中并不需要自己 ...

最新文章

  1. mysql密码设置 alert_MySQL用户、权限及密码操作
  2. 另一个git进程似乎在这个存储库中运行
  3. swift:简单使用翻页控制器UIPageViewController
  4. PowerDesigner连接数据库,PowerDesigner将数据同步到数据库,PowerDesigner和数据库中的表进行比对
  5. Nacos-Nacos和Eureka的对比
  6. 请使用recaptcha_如何在30分钟内使用ReCaptcha和PHP构建Bootstrap电子邮件表单
  7. 04.Unity ShaderGraph序列(Lightweight Pipeline相关扫盲)
  8. shark恒破解笔记5-VB之rtcMsgBox
  9. 便携式手持 频谱分析仪_便携式频谱分析仪
  10. 专访贤华老师:阐释护肤真谛
  11. reset.css normalize.css,normalize与css reset的区别
  12. 活动桌面处理和一个例子
  13. 德蕾莎修女---一个伟大的人
  14. 伺服控制原理 及RT and IRT
  15. qq在线模板html,qq错误模板sogoupy.ime
  16. 有符号数和无符号数区别
  17. PX4-AutoPilot教程--搭建并运行第一个应用程序
  18. 巨亏超10亿!“汽车金融第一股”易鑫业绩腰斩,上半年却傍上腾讯
  19. Android导入OpenCV库
  20. 计算机二级mysql难度_计算机二级科目怎么选 科目难度排名

热门文章

  1. java 错误声音播放器_JavaME 声音播放器的使用
  2. 米兰理工计算机博士申请,意大利博士申请:米兰理工大学16个博士/博士后项目招生中~...
  3. 2022-2027年中国非人寿保险市场竞争态势及行业投资前景预测报告
  4. 有各组方差怎么算组间平方和_方差分析:组间离差平方和组内离差平方的定义是什么?...
  5. Win7/Vista激活后添加grub引导Linux最简单方法!无需命令行!
  6. 最近公共祖(LCA)模板_祖先深度_区域祖先_(欧拉序列+标准RMQ+四毛子)O(n)-O(1)
  7. 内核SIP ALG学习指引和基本实现原理(分析BCM方案实现)
  8. 成长篇之代码灵异事件
  9. CentOS 安装字体
  10. 傅盛认知三部曲之三:战略就是格局+破局