Android-NDK
疯狂小芋头
这个作者很懒,什么都没留下…
展开
-
NDK-Android项目创建
1、正常创建一个需要的android项目2、右键项目->Android Tools->Add Native Support(添加本地支持)3、按需要创建相关的本地支持(创建成功项目会出现jni文件夹、Android.mk文件等)4、向jni文件中添加需要用到的C++文件【包括需要用到的头文件!!】5、根据需要调用的C++文件中的函数,在src中创建相关的Java原创 2015-01-08 16:59:03 · 592 阅读 · 0 评论 -
NDK项目创建(图)
1、创建一个android项目(需要已添加了NDK引用)2、添加本地支持3、创建编译模块并指定模块名4、创建成功会有一个jni文件夹5、为项目添加C++头文件(右键选择项目的属性进入,选择C,CPP,单击Add)6、添加头文件路径(勾选add to all languages,此选项的明确作用暂时没整明白,但是勾选原创 2015-03-09 10:42:29 · 702 阅读 · 0 评论 -
NDK-error: 'dynamic_cast' not permitted with -fno-rtti
在Application.mk中添加上:APP_STL:=stlport_static详情查看stackoverflow:http://stackoverflow.com/questions/7427748/how-do-i-turn-on-rtti-with-cygwin原创 2015-01-13 17:23:12 · 1815 阅读 · 0 评论 -
NDK 获取Java中类及对象(包括C++与Java对象的数据交互)
查找Java类对于C++来说,使用环境变量env->FindClass("完整的包及类名");如查找以下类:com.example.hello.world.Testjclass clazz=env->FindClass("com/example/hello/world/Test");【注意,网上有的地方说要用L开关表示这是一个类型,在查找类时完全不用,用了你就等报错找不到吧原创 2015-01-08 17:06:39 · 2379 阅读 · 0 评论 -
NDK-ambiguates old declaration 'XXX'
在网上查询了一下,可能是系统库函数已经存在了然后该函数被重新定义,也就是函数名不可以一样如在string.h中有一个函数const char* strerror(int x);在另一个头文件中重写了这个函数://定义在头文件中:strerror.htypeof StrError strerrorconst char* StrError(int x);//然后在strerro原创 2015-01-13 17:24:22 · 3498 阅读 · 0 评论 -
NDK环境搭建
1、最新的ADT插件本身已经集成了NDK插件,所以只要安装最新的ADT插件就可以了。(版本应该在20以上吧)2、下载官方NDK:http://developer.android.com/tools/sdk/ndk/index.html3、解压到需要存放的位置即可【所有文件夹名都不可以带中文或者空格!!】4、按以下方法打开:eclipse->window->p原创 2015-01-08 16:57:48 · 362 阅读 · 0 评论 -
NDK-Java调用C++文件
创建与C++相关的项目详见NDK-Android项目创建原理本质是Java通过Jni调用C++文件,Jni相当于一个中间角色;根本上是基于Linux环境下的交叉编译,官方NDK本身就是集成了Linux环境;实际上就是使用NDK编译C++文件成为Linux环境下的库文件.so文件,再调用必须使用Jni中定义的类型将C++中的类型与Java中的类型统一起来;原创 2015-01-08 16:59:52 · 522 阅读 · 0 评论 -
NDK环境下输出Android Log
1、在使用Log的cpp文件中添加头文件:#include android/log.h>2、在Android.mk中添加一列参数:LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog3、向项目的路径添加log.h存在的路径:右键->Properties->C/C++ General->Paths and Symbols->includes->原创 2015-01-08 17:01:38 · 1611 阅读 · 0 评论 -
NDK编译没错,运行so库文件出错
java.lang.UnsatisfiedLinkError: Native method not found 三种可能解决方案 so文件编译生成后,运行时,有时候会遇到java.lang.UnsatisfiedLinkError: Native method not found问题,有可能是以下三种因素:一、Jni方法头部大小写问题 在C++中,方法原创 2015-01-08 17:02:37 · 1240 阅读 · 0 评论 -
NDK编译时cpp文件出错
部分类型查找不到,无法编译在eclipse的编辑窗口将对应的文件关闭,如在test.cpp文件中使用了WORD这个类型(window系统定义的一个类型),将此test.cpp文件关闭;重新打开eclipse,不要再打开那个文件,项目不报错即可;(以上必须是已经完成了环境的搭建并确定环境没有问题)根据个人推算,其实是可以编译成功,系统也可以查找到相关的文件,不过打开文件后程序原创 2015-01-08 17:04:40 · 898 阅读 · 0 评论 -
重新编译使用CMake的旧项目的问题处理
文章目录使用最新版本 NDK(19版本)进行旧项目编译时,发现无法编译成功。原项目是使用 CMake 进行配置的,但是由于原项目编译环境被移除掉了,所以需要重新配置编译环境。Error:CMake Error: CMake was unable to find a build program corresponding to "Ninja". CMAKE_MAKE_PROGRAM is no...原创 2019-02-18 14:49:11 · 5700 阅读 · 0 评论