NDK问题总结
转自 这篇文章中很多东西!!:http://blog.chinaunix.net/uid-20746260-id-3910616.html
1. 创建JNI头文件
在工程目录下输入:
javah -classpath bin/classes -d jni com.example.rgbir.rgbirJNI
遇到的问题
error: cannot access com.example.rgbir.rgbirJNI
class file for com.example.rgbir.rgbirJNI not found
javadoc: error - Class com.example.rgbir.rgbirJNI not found.
Error: No classes were specified on the command line. Try -help.
解决方法:点击运行工程,重新在命令行输入命令即可。
原因: 重新生成class文件
2. 配置NDK路径
参考文章: 创建eclipse针对NDK的联合编译环境。
3. 屏蔽语法检查错误
对代码分析(code analysis)进行屏蔽
位置: project-> properties ->c/c++ general ->code analysis
在选择“using project setting”下面的syntax and semantic error 进行屏蔽
4. 解决JNI层函数头文件《jni.h》 下的黄线
因为CDT索引器没有找到路径,而NDK知道。
进入项目属性页面,“c/c++ general” -》 “Paths and symbols”,右边“add...” 输入JNI相关头文件所在目录。比如“${env_var:Android_NDK}/platforms/android-18/arch-arm/usr/include”.
5 C++包含。h头文件
JNI文件夹下的c++程序包含。h文件, 。h文件中所有函数声明必须在如下宏中,否则会报 undefined reference to 的错误。
#ifdef __cplusplus
extern "C" {
#endif //一段代码 #ifdef __cplusplus
}
#endif
6. java.lang.UnsatisfiedLinkError:Native method not found
so文件编译生成后,运行时,有时候会遇到java.lang.UnsatisfiedLinkError: Native method not found问题。
a. JNI方法头部大小写问题
在C++中,方法名:Java_com_XXX,而不是java_com_XXX。建议直接从生成的.h头文件直接复制方法名到C或者C++文件中。
b. C++文件问题
如果是C++文件(.cpp或者.cc),要使用extern "C" { } 把本地方法括进去。
c. 往JNI方法中传值问题
如,调用native方法sendSomeThing(Object object),如果传入的object为null,有可能会报上面错误。
7. SD卡中创建文件、写入文件、删除文件操作的支持
在AndroidManifest.xml中加入访问SDCard的权限.如果支持网络, 麦克风等一样处理
NDK问题总结的更多相关文章
- Android游戏开发实践(1)之NDK与JNI开发03
Android游戏开发实践(1)之NDK与JNI开发03 前面已经分享了两篇有关Android平台NDK与JNI开发相关的内容.以下列举前面两篇的链接地址,感兴趣的可以再回顾下.那么,这篇继续这个小专 ...
- NDK开发_笔记0
自谷歌搜索退出中国以来,谷歌对全球第二大市场中国的态度一直保持冷淡.可是北京时间12月8日,谷歌2016开发者大会在北京召开,同时专门针对中国的谷歌开发者网站已经上线:https://develope ...
- Android NDK debug 方法
最近又频繁遇到 NDK 的错误,记录一下debug调试的一些经验,以备后续查看 一般来说,在Android Studio中的Monitor中将过滤器的 LOG TAG 设置为 "DEBUG& ...
- Android游戏开发实践(1)之NDK与JNI开发01
Android游戏开发实践(1)之NDK与JNI开发01 NDK是Native Developement Kit的缩写,顾名思义,NDK是Google提供的一套原生Java代码与本地C/C++代码&q ...
- Android游戏开发实践(1)之NDK与JNI开发02
Android游戏开发实践(1)之NDK与JNI开发02 承接上篇Android游戏开发实践(1)之NDK与JNI开发01分享完JNI的基础和简要开发流程之后,再来分享下在Android环境下的JNI ...
- android JNI 调用NDK方法
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...
- Android Studio中的CmakeList NDK配置
Android Studio2.2之后直接可以在创建工程时添加NDK支持了,添加之后,main文件夹下会多出一个native-lib.cpp这个文件,如果只为了一个简单的NDK接口,貌似这就结束了.直 ...
- AndroidStudio 1.4配置NDK
AndroidStudio(AS) 1.3之后已经支持NDK,这为NDK开发提供了极大的便利,不在需要配置各种头疼的MK文件,简单的九步就可完成配置.要说明的是,第一次配置AS一定要有耐心. 0,下载 ...
- Android SDK NDK开发总结
描述:http://talent.baidu.com/external/baidu/index.html#/jobDetail/2/1237247043 android studio实现Jni(C/C ...
- NDK笔记(二)-在Android Studio中使用ndk-build
前面一篇我们接触了CMake,这一篇写写关于ndk-build的使用过程.刚刚用到,想到哪儿写哪儿. 环境背景 Android开发IDE版本:AndroidStudio 2.2以上版本(目前已经升级到 ...
随机推荐
- MFC下OpenGL入门(可以用)
MFC下OpenGL入门 源文件 1, 建一工程文件,我这里命名为first,现在first工程里面我们没有添加任何东西,所有的东西都是MFC自动帮我们创建的. 2, 添加链接库.这一步很关键.打开菜 ...
- Query 一些简单的效果
Query 一些简单的效果 $(selector).hide(speed,callback); 隐藏 $(selector).show(speed,callback); 显示 $(selector). ...
- 使用CocoaPod导入Swift第三方库报错
在使用cocoapod导入swift第三方时出现这样的错误: [!] Pods written in Swift can only be integrated as frameworks; add ` ...
- java 环境配置 及java 历史
知识点概括:1 Java 的历史 2 JDK 的配置 3 文件的编译与执行 ...
- NSLog 自定义 屏蔽
1.如何自定义NSLog呢? 直接在工程的XXX_Prefix.pch中加入以下语句(就相当于在全局中定义了)#define NSLog NSLog(@"#%s##%d#",str ...
- DELPHI类声明方式简介
TMyDemo = class(TObject) FName: string; {数据成员(Field)} FAge: Integer; private {私有的} {最为隐秘的访问程度} proce ...
- Linux破解root密码
实验环境 虚拟机软件:VMware Workstation 操作系统:Read Hat Enteprise 6.3 1.破解r ...
- PHPExcel 导出时乱码
今天遇到了个奇怪的问题..猜测应该是因为php文件的编码造成的,但是没有解决办法. 问题是,用PHPEXCEL导出文件的时候,相同的代码在一个文件中可以导出,在另一个文件中却不行.. 最后没有办法,只 ...
- java 中文转化为拼音
依赖架包:pinyin4j.jar package net.jeeshop.core.util; import net.sourceforge.pinyin4j.PinyinHelper; impor ...
- 其他信息: 未找到源,不过,未能搜索部分或所有事件日志。 若要创建源,您需要用于读取所有事件日志的权限以确保新的源名称是唯一的。 不可访问的日志: Security。
其他信息: 未找到源,不过,未能搜索部分或所有事件日志. 若要创建源,您需要用于读取所有事件日志的权限以确保新的源名称是唯一的. 不可访问的日志: Security. System.Diagnos ...