Android NDK报错(Eclipse)及解决方法

在AndroidNDK开发过程中,工程目录下的jni文件夹下编写的c/c++代码,通常会出现如下的几种类型的报错:

1、Unresolved inclusion:<XXX>

2、syntax error

3、Function ‘XXX‘ could not be resolved

4、Type ‘XXX‘ could not be resolved

5、Symbol ‘XXX‘ could not be resolved

6、Method ‘XXX‘ could not be resolved

7、Invalid arguments ‘Candidates are: ...‘

1  错误形式一:没有导入头文件(这是最大的错误,会引起一系列下面的报错)。通常会有如下表现形式:

1、Unresolved inclusion: <jni.h>、Unresolved inclusion: <stdio.h>、Unresolved inclusion: <malloc.h>、Unresolved inclusion: <Android/log.h>、...

2、Function ‘__android_log_print‘ could not be resolved、Type ‘JNIEnv‘ could not be resolved、Type ‘jstring‘ could not be resolved、Type ‘jclass‘ could not be  resolved、Function ‘malloc‘ could not be resolved、Function ‘memcpy‘ could not be resolved、Method
‘FindClass‘ could not be resolved、Type ‘jsize‘ could not be  resolved、Symbol ‘NULL‘ could not be resolved、...

解决方法:右击项目 --> Properties --> 左侧C/C++ General --> Paths and Symbols --> 右侧Includes --> GNU C++(.cpp) --> Add——>${NDKROOT}\platforms\android-18\arch-arm\usr\include(tips:这里的NDK platforms\android-18一定要和你的工程的properties里的target一致)。

2  错误形式二:

1、Unresolved inclusion: <iostream>、Unresolved inclusion: <fstream>、Symbol ‘std‘ could not be resolved、..

2、Type ‘fstream‘ could not be resolved、Symbol ‘in‘ could not be resolved、Method ‘seekg‘ could not be resolved、Method ‘read‘ could not be resolved、...

解决方法: 添加路径(步骤见上述解决方法):${NDKROOT}\sources\cxx-stl\gnu-libstdc++\4.8\include 、${NDKROOT}\sources\cxx-stl\gnu-libstdc++\4.8\libs\armeabi\include。

3  错误形式三: Invalid arguments ‘Candidates are:void * malloc(?)‘、Invalid arguments ‘Candidates are:void * memcpy(void *, const void *, ?)‘

解决方法: 添加路径(步骤见上述解决方法):${NDKROOT}\toolchains\arm-linux-androideabi-4.8\prebuilt\windows\lib\gcc\arm-linux-androideabi\4.8\include

解决了错误,大家have fun

时间: 2024-10-11 19:05:24

Android NDK报错(Eclipse)及解决方法的相关文章

eclipse robovm插件报错原因及解决方法

在eclipse上安装robovm插件经常会报错. 大多数时候是由于没有使用JDK7的原因,很多时候由于mac os中自带的jdk6干扰,即使在mac中设置了JAVA_HOME为JDK7的路径robovm插件也不好用,这时候就需要在eclipse启动时指定jdk7的java.exe来启动eclipse本身.操作过程如下: 1:切换到eclipse路径下. 2:执行命令:./eclipse -vm /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/

vue.js常见的报错信息及其解决方法的记录

1.Vue packages version mismatch 翻译:vue包版本匹配错误 报错样例: 报错原因:通常出现于一些依赖库的更新或者安装新的依赖库之后(可以认为npm update已经成为一种习惯),导致了vue和vue-template-compiler的版本不一致. 解决方案:统一vue和vue-template-compiler的版本 1 "vue": "2.3.4", 2 "vue-template-compiler": &q

安装apk报错INSTALL_FAILED_UPDATE_INCOMPATIBLE的解决方法

其实不能叫解决方法,因为最后没解决(囧),只是觉得解决的过程有一定的意义,故记录一下 问题的产生是因为要在一部中兴手机上安装中兴应用市场,不过手机上之前已经有了中兴应用市场(我自己要装的是debug版的,没签名).于是乎第一次安装就报上面的错了 一看到错我就纳闷了,不是把老版本的apk卸了吗,怎么还是报冲突.于是网上找了半天,在/data/data/目录下把该apk的目录删了,再run,依然无效. 又在网上看到另一种做法,把/system/packages.xml中该apk的节点信息删除.看了下

Python首次安装后运行报错(0xc000007b)的解决方法

最近在安装完Python后运行发现居然报错了,错误代码是0xc000007b,于是通过往上查找发现是因为首次安装Python缺乏VC++库的原因,下面通过这篇文章看看如何解决这个问题吧. 错误提示如下: 其实这是一个挺常见的系统报错,缺乏VC++库. 我安装的是python3.5.2,这个版本需要的vc版本是2015的了,下载:Microsoft Visual C++ 2015 update 3 安装完后发现就正常了: 总结 通过以上的方法就能轻松解决首次安装Python后运行报错的问题,希望本

报错信息及解决方法

1.eclipse使用maven,启动工程tomcat报错:java.lang.ClassNotFoundException: org.springframework.web.context.Contex 原因:tomcat 中没有相关的jar,但是工作空间是有这些jar 的: 已解决:https://blog.csdn.net/java_mr_zheng/article/details/50166167 项目 -> 属性 -> Deployment Assembly -> Add -&

php安装make报错信息及解决方法

make错误 Generating phar.phar /root/php-5.3.27/sapi/cli/php:error while loading shared libraries: libmysqlclient.so.18: cannot open sharedobject file: No such file or directory make: *** [ext/phar/phar.phar] 错误 127 解决:[[email protected] php-5.3.27]# ln

windows无法启动MySQL服务报错1067的解决方法是怎样?

方法一: 1.打开my.ini文件,找到default-storage-engine=InnoDB这一行,把它改成default-storage-engine=MyISAM.2.删除在MySQL安装目录下的Data目录中的ib_logfile0和ib_logfile13.找到在配置MySQL服务器时指定的InfoDB目录删除掉ibdata1根据my.ini文件中:#*** INNODB Specific options ***        innodb_data_home_dir="D:/&q

CXF报错汇总及解决方法

本文用于收藏在使用CXF的过程中遇到的问题及对应的解决方法,记录于此,供大家参考. RuntimeException: Cannot create a secure XMLInputFactory 服务器端缺少了两个jar包 stax2-api-3.1.x.jar 和 woodstox-core-asl-4.2.x.jar,客户端不需要任何jar包 客户端也需要 Can't find the the request for Web.xml中 必须有 <context-param> <pa

Python发送邮件smtplib.SMTP各报错问题的解决方法

经测试可用的发送邮件代码: import smtplib from email.mime.text import MIMEText # 第三方 SMTP 服务 mail_host = "smtp.163.com" # SMTP服务器 mail_user = "username" # 用户名 mail_pass = "passwd" # 密码(这里的密码不是登录邮箱密码,而是授权码) sender = '[email protected]' # 发