JNI开发中遇到的各种问题
来源:互联网 发布:维护网络数据的 编辑:程序博客网 时间:2024/05/23 15:40
到了年底,公司的事忙的差不多了。一年过去,在领域之外也感觉也没什么大的提升,之前一直想弄重新捡起C++/C的愿望始终无法实现。
这一年开始便各种事情。。。一直到现在才按照网上的各种教程写了个JNI的代码。其中也遇到不少问题。现一一记录下来,以备后用。
首先安装环境,网上有教学、简单说一下跳过:下载安装NDK,cygwin,MinGW,eclipse CDT插件。
新建一个C++工程,添加编译器:NDK的编译环境配置路径:android-ndk-r9\ndk-build.cmd
创建好了之后编写Android.mk 文件,ndk-build会自动找到这个文件进行解析。
要使用native方法的类编译成class文件 然后使用命令行 javah -jni 完整类名,生成".h"文件
在生成的“h文件”的方法名照抄到"cpp文件",如:
h文件的:
JNIEXPORT void JNICALL Java_com_demo_jni_HelloWorld_displayHelloWorld
(JNIEnv *, jobject);
变为cpp文件的:(在方法体内实现功能)
JNIEXPORT void JNICALL Java_com_demo_jni_HelloWorld_displayHelloWorld
(JNIEnv *env, jobject obj) {
char *__android_log_print(ANDROID_LOG_INFO, "HelloWorldTest", "Hello world!/n");
printf("Hello world!/n");
return;
}
这个方法是无法再android手机的log中打印出结果的。要调用android的log库
此时要导入#include <android/log.h>,会报没有找到include的资源的错
这时候在项目中添加folder linked (2):
1:E:\android-ndk-r9\platforms\android-18\arch-arm\usr\include
2:E:\android-ndk-r9\toolchains\arm-linux-androideabi-4.8\prebuilt\windows-x86_64\lib\gcc\arm-linux-androideabi\4.8\include
注意,如果出现
Android NDK: Could not find application project directory !
Android NDK: Please define the NDK_PROJECT_PATH variable to point to it.
E:\android-ndk-r9\build/core/build-local.mk:130: *** Android NDK: Aborting . Stop.
说明已经成功了
在工程的/libs目录会出现正确的so文件
关于android.mk的编写格式,以后继续写。
- JNI开发中遇到的各种问题
- eclipse jni开发中遇到的问题
- IOS开发中遇到的各种问题
- Android开发中遇到的各种问题?
- AndroidStudio的JNI开发中遇到的一些问题
- jni开发中javah生成头文件遇到的问题
- jni开发中遇到的问题4:如何在jni中进行字符串的合并
- IOS开发中遇到的各种问题以及解决方案集锦
- IOS开发中遇到的各种问题以及解决方案集锦
- 开发过程中遇到的各种问题汇总
- JNI 遇到的问题
- jni开发中遇到的问题3:Caused by: java.lang.UnsatisfiedLinkError: Native method not found
- slightphp中遇到的各种问题
- Ubuntu中遇到的各种小问题
- ExpandableListView使用中遇到的各种问题
- Python 学习中遇到的各种问题
- RT_Thread应用中遇到的各种问题
- 工作中遇到的各种问题
- js 禁止冒泡 点击页面空白处,隐藏特定的div
- POJ 2337 Catenyms 欧拉通路
- acm1001
- windows下面配置ffmpeg且用java调用
- js/jQuery判断浏览器名称、内核版本、浏览器壳
- JNI开发中遇到的各种问题
- 如何给UITableView 或 UIScrollView 的content 做截图
- MYSQL数据库设计和数据库设计实例(三)
- C语言与C++不得不说的那点事
- 网络基本功(二十一):细说HTTP(上)
- Android notification 的使用,可点击,并且进入Activity不走onCreate()方法。
- jprofiler 查看程序内存泄露
- How to install VNC server on ubuntu 14.04
- emulator: ERROR: x86 emulation currently requires hardware