android studio ndk 环境搭建
2016-07-08 07:15
302 查看
今天花了8个小时,终于把这该死的环境搭好了。现在记录一下。
最后面会给出整个项目。
首先放上抄袭链接:先感谢这位大神
http://yanbober.github.io/2015/02/14/android_studio_jni_1/
注意:建议大家完全模仿这位大神的写法,包括包名什么的,这样有错误也可以及时发现。
我的环境是:
Android Studio 1.5 for windows
android-ndk-r12-beta1
JDK 1.8.0_40
基本抄袭那位大神的,再加上自己的一些修改
第一步
第二步
第三步,Make project(Ctrl + F9),
这样就会生成.class文件,
第四步 我们要用刚刚生成的class文件,利用javah 生成jni对应的 .h头文件
D:\AndroidStudioProjects\Jni03>cd app\build\intermediates\classes\debug
D:\AndroidStudioProjects\Jni03\app\build\intermediates\classes\debug>javah -jni io.github.yanbober.ndkapplication.NdkJniUtils
这样就生成了.h文件
第五步,生成后的.h文件的内容如下:
第六步,在src 的main目录下,建一个jni文件夹,可以通过 鼠标右击main->new->Folder -> JNI Folder 生成,然后把刚刚弄好的.h文件剪切过来
第七步,在这个jni文件夹中 新建一个 c文件,取名为jnitest.c:
注意(一定要注意这两种写法,我刚刚就在cpp文件里面写了c的代码,结果死活不知道原因,还是查了写网上这位大哥的提示才知道的:http://hepeng421.blog.163.com/blog/static/11948517201402344215411/):
1、使用c++来写代码,文件名就必须【cpp】后缀:
返回结果:return env->NewStringUTF((char *)”Hello from JNI !”);//C++用这种格式
2、使用c来写代码,文件名就必须【c】后缀:
返回结果:return (*env)->NewStringUTF(env, “Hello from JNI !”);//如果是用C语言格式就用这种方式
第八步:
第九步:
第十步:也是那个大神没有写的,但是我的电脑出现了这个问题。
android.useDeprecatedNdk=true
完成了这些操作,我就可以跑这个获取到c文件中的数据了。。哈哈!!
最后说一句,不知道是不是 某度 有毒还是怎么回事,找了七个小时的资料,死活找不到 可以运行的。。 还是 Google 了一下,然后就找到了那位大神写得文章,然后经过一番操作就运行成功了。。
Demo链接:http://download.csdn.net/detail/chang_1134/9570206
最后面会给出整个项目。
首先放上抄袭链接:先感谢这位大神
http://yanbober.github.io/2015/02/14/android_studio_jni_1/
注意:建议大家完全模仿这位大神的写法,包括包名什么的,这样有错误也可以及时发现。
我的环境是:
Android Studio 1.5 for windows
android-ndk-r12-beta1
JDK 1.8.0_40
基本抄袭那位大神的,再加上自己的一些修改
第一步
第二步
第三步,Make project(Ctrl + F9),
这样就会生成.class文件,
第四步 我们要用刚刚生成的class文件,利用javah 生成jni对应的 .h头文件
D:\AndroidStudioProjects\Jni03>cd app\build\intermediates\classes\debug
D:\AndroidStudioProjects\Jni03\app\build\intermediates\classes\debug>javah -jni io.github.yanbober.ndkapplication.NdkJniUtils
这样就生成了.h文件
第五步,生成后的.h文件的内容如下:
第六步,在src 的main目录下,建一个jni文件夹,可以通过 鼠标右击main->new->Folder -> JNI Folder 生成,然后把刚刚弄好的.h文件剪切过来
第七步,在这个jni文件夹中 新建一个 c文件,取名为jnitest.c:
注意(一定要注意这两种写法,我刚刚就在cpp文件里面写了c的代码,结果死活不知道原因,还是查了写网上这位大哥的提示才知道的:http://hepeng421.blog.163.com/blog/static/11948517201402344215411/):
1、使用c++来写代码,文件名就必须【cpp】后缀:
返回结果:return env->NewStringUTF((char *)”Hello from JNI !”);//C++用这种格式
2、使用c来写代码,文件名就必须【c】后缀:
返回结果:return (*env)->NewStringUTF(env, “Hello from JNI !”);//如果是用C语言格式就用这种方式
第八步:
第九步:
第十步:也是那个大神没有写的,但是我的电脑出现了这个问题。
android.useDeprecatedNdk=true
完成了这些操作,我就可以跑这个获取到c文件中的数据了。。哈哈!!
最后说一句,不知道是不是 某度 有毒还是怎么回事,找了七个小时的资料,死活找不到 可以运行的。。 还是 Google 了一下,然后就找到了那位大神写得文章,然后经过一番操作就运行成功了。。
Demo链接:http://download.csdn.net/detail/chang_1134/9570206
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题