JNI编程(AndroidStudio)
来源:互联网 发布:热传导分析软件 编辑:程序博客网 时间:2024/06/05 15:57
先发一个链接:http://zhangleipku.blogspot.com/2016/03/test-ndk-jni-from.html
本文基本是基于上面的文章,在MAC下开发(Windows可能配置略有不同,请自行谷歌),接下来就写一下自己的过程,留个笔记。
0.AndroidStudio->Project Structure->SDK Location->Android NDK location
1.新建JniUtils类实现native方法。(假设路径:com.test.JniUtils)
public class JniUtils{ public static native String getStringFromC();}2.clean project或者rebuild project生成class文件
3.在app/应用名/build/intermediates/classes/debug/com/test中找到JniUtils.class
4.再打开Terminal输入指令
cd app/应用名/build/intermediates/classes/debug5.然后输入指令
javah -jni com.test.JniUtils(JniUtils路径)*这里的javah -jni后面跟的是Jni的全路径,如果javah报不存在之类的,是你的java环境没有配置好。
6.这时候打开classes/debug下面的文件发现多了一个文件
com_test_JniUtils.h
7.然后在src/main下新建文件夹Jni,把生成的.h文件复制或剪切到jni文件夹下面去,新建一个c类随便取一个名字,添加代码如下
#include "com_test_JniUtils.h"JNIEXPORT jstring JNICALL Java_com_wobiancao_ndkjnidemo_ndk_JniUtils_getStringFormC (JNIEnv *env, jobject obj){ return (*env)->NewStringUTF(env,"这里是来自c的string");}
8.gradle.properties
android.useDeprecatedNdk=true
9.应用build.gradle->defaultConfig
ndk{ moduleName "NdkJniDemo" }
10.工程build.gradle
allprojects { repositories { jcenter() }}11.在JniUtils类中添加
static { System.loadLibrary("NdkJniDemo");//之前在build.gradle里面设置的so名字,必须一致 }12.使用
JniUtils.getStringFromC();
13.如果运行正常,则可以打开app->intermediates->ndk->debug发现生成了几个文件夹,在app/应用名下新建libs, 把生成的几个文件夹放进去。
14.删除jni文件,重新运行。
0 0
- JNI编程(AndroidStudio)
- AndroidStudio的JNI编程举例
- AndroidStudio JNI
- JNI和NDK编程-使用AndroidStudio进行NDK开发
- 通过CMake在AndroidStudio项目中引入JNI编程
- Android JNI编程(七)——使用AndroidStudio编写第一个JNI程序
- Androidstudio中配置JNI
- AndroidStudio 如何使用JNI
- AndroidStudio下jni开发
- androidStudio jni 简单入门
- Androidstudio JNI 环境配置
- AndroidStudio编写JNI程序
- AndroidStudio使用jni开发
- AndroidStudio Jni 开发初识
- AndroidStudio配置Jni
- AndroidStudio JNI NDK CMake
- AndroidStudio jni 开发
- AndroidStudio下的JNI
- webuploader的使用
- ubuntu下 adb devices找不到devices
- 401 biharmonic deformation
- 012-矩阵链相乘-动态规划-《算法设计技巧与分析》M.H.A学习笔记
- Android中监听Home键的4种方法总结
- JNI编程(AndroidStudio)
- 20. Valid Parentheses(stack)
- mysql 5.7.13 在ubuntu上的安装以及部分简单说明
- 带圆点标示的ViewPager
- placeholder IE兼容问题
- android studio 一些使用问题
- 编写一个删除C语言程序中所有注释语句的程序
- SpringMVC日期绑定
- JavaWeb学习总结(三)——Tomcat服务器学习和使用(二)