Android Studio中JNI -- 1 -- 配置方法

1.配置NDK

1.1 下载NDK

Android Studio 1.2 配 android-ndk-r10e,不同版本的Studio需要配置不同的ndk,下载完成后,随便解压放至某个文件目录下

1.2 指定NDK目录

1.3 修改build.gradle配置

需要修改的是在<Project>\app\build.gradle

2. 添加native接口

2.1 添加native

2.2 执行build -> Make Project

确定程序无错误,并生成.class文件

2.3 通过javah生成.h头文件

2.3.1 打开cmd

2.3.2 进入<Project>\app\src\main的目录

2.3.3 输入命令

javah -d jni -classpath F:\android-sdk-windows\platforms\android-16\android.jar;..\..\build\intermediates\classes\debug com.oki.led.jni.AppJNI

2.3.4 生成结果

.h文件

3. 编辑.c文件

3.1 添加一个com_oki_led_jni_AppJNI.c文件

3.2 执行Build - > Make Project 判断是否成功

3.3 执行Build - > Rebuild Project 就可以生成so文件包了

4. 引用so文件包

AppJNI appJNI = new AppJNI();appJNI.方法名(参数)
时间: 2024-10-24 21:09:20

Android Studio中JNI -- 1 -- 配置方法的相关文章

Android Studio使用OpenCV的配置方法

1.下载 进入官网(http://opencv.org/)下载OpenCV4Android并解压.目录结构如下图所示. 其中,sdk目录即是我们开发opencv所需要的类库:samples目录中存放着若干opencv应用示例(包括人脸检测等),可为我们进行android下的opencv开发提供参考:doc目录为opencv类库的使用说明及api文档等:而apk目录则存放着对应于各内核版本的OpenCV_2.4.3.2_Manager_2.4应用安装包.此应用用来管理手机设备中的opencv类库,

关于android studio中使用class.forname()方法动态获取类实例报NO CLASS FOUND异常的几种处理方法

最近在做一个项目的时候需要用到反射来回调子类的方法,但是在反射过程中总是在class.forname()方法抛出NO CLASS FOUND异常,经过几部检查,问题解决,在此总结一下引起该问题的原因 1.class.forname()的参数中的类名必须是完整的包名+类名 2.是1的衍生,在Android studio中,一旦项目的包名修改过了,还需要在自动生成的build.gradle文件中(项目android视图里面)把applicationid给改成修改后的包名,否则安装好APP之后包名还是

android studio中rendering problems解决方法

android studio中xml不能preview 打开res/values/styles.xml ,如下: <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> </style> 把Theme.

android studio 中jni底层日志的打印

1 添加ndk对log支持若需要添加ndk对log的支持,只需要通过以下2步即可实现. 1.1 修改Android.mk如生成的库文件是".so文件",则在Android.mk中添加如下内容:LOCAL_LDLIBS:=-L$(SYSROOT)/usr/lib -llog如生成的库文件是".a文件",则在Android.mk中添加如下内容:LOCAL_LDLIBS:=-llog 1.2 在.c或.cpp文件中引用log头文件添加如下内容:// 引入log头文件#in

快速掌握 Android Studio 中 Gralde 的使用方法

Gradle是Android开发新一代的 Build System, 也是 Android Studio默认的build工具. Gradle脚本是基于一种JVM语言 -- Groovy,再加上DSL(领域特定语言)语言组成的. 因为Groovy是JVM语言,可以使用大部分的Java语言库.所谓DSL就是专门针对Android开发的插件,比如标准Gradle之外的一些新的方法(Method).闭包(Closure)等. 由于Gradle的语法足够简介,而且可以使用大部分的java包,当之无愧地成为

快速掌握 Android Studio 中 Gradle 的使用方法(转)

Gradle是可以用于Android开发的新一代的 Build System, 也是 Android Studio默认的build工具. Gradle脚本是基于一种JVM语言 -- Groovy,再加上DSL(领域特定语言)组成的. 因为Groovy是JVM语言,所以可以使用大部分的Java语言库.所谓DSL就是专门针对Android开发的插件,比如标准Gradle之外的一些新的方法(Method).闭包(Closure)等. 由于Gradle的语法足够简洁,而且可以使用大部分的java包,当之

快速掌握 Android Studio 中 Gradle 的使用方法 [转http://blog.csdn.net/feelang/article/details/41783317]

Gradle是可以用于Android开发的新一代的 Build System, 也是 Android Studio默认的build工具. Gradle脚本是基于一种JVM语言 -- Groovy,再加上DSL(领域特定语言)组成的. 因为Groovy是JVM语言,所以可以使用大部分的Java语言库.所谓DSL就是专门针对Android开发的插件,比如标准Gradle之外的一些新的方法(Method).闭包(Closure)等. 由于Gradle的语法足够简洁,而且可以使用大部分的java包,当之

Android Studio中JNI -- 2 -- 编写c文件

继上一篇,我们在native接口中编写了2个方法 生成的相应.h文件 这时,需要我们自己去完善.c文件 /* DO NOT EDIT THIS FILE - it is machine generated */#include <jni.h>#include <android/log.h>#include <stdio.h>#include <string.h>#include <stdlib.h> /* Header for class led

在Android Studio中查看Sqlite的方法

只说最好的方法,使用工具stetho:http://facebook.github.io/stetho/ 1.在Gragle中加上如下语句: dependencies { // Stetho core compile 'com.facebook.stetho:stetho:1.3.1' //If you want to add a network helper compile 'com.facebook.stetho:stetho-okhttp3:1.3.1' } 1 2 3 4 5 6 1 2