Android Studio建立jni开发环境
来源:互联网 发布:mysql if 编辑:程序博客网 时间:2024/05/15 00:52
1. 添加native接口和System.loadLibrary()
2.执行Build->Make Project
生成了.class文件..class文件的生成路径是在 app_path/build/intermediates/classes/debug下的. 这个在android studio里面看不到, 到文件管理器里面翻到, 里面还有好多东西。
3.javah生成c头文件
点击"View->Tool Windows->Terminal",即在Studio中进行终端命令行工具.执行如下命令生成c语言头文件。
这 里需要注意的是要进入 <Project>\app\src\main的目录下执行javah命令,为的是生成的 .h 文件同样是在<Project>\app\src\main路径下(jni下面),可以在Studio的工程结构中直接看到。
操作命令:
javah -d jni -classpath <SDK_android.jar>;<APP_classes> <class>
javah -d jni -classpath c:\Users\yun\AppData\Local\Android\sdk1\platforms\android-21\android.jar;..\..\build\intermediates\classes\debug com.example.jnitest
然后就看到<project>\app\src\main\jni\com_example_jnitest.h出现了.
Step: 4.编辑c文件
在<project>\app\src\main\jni\jnitest.c文件中实现头文件中的函数。
Step: 5.配置NDK
这一步包括两个动作:
1.指明ndk路径
在local.properties中添加ndk目录, ndk目录中不可包含空格.
ndk.dir=C\:\\android-ndk-r10d
2. 修改build.gradle配置
工程中共有两个build.gradle配置文件,我们要修改的是在<Project>\app\build.gradle这个文件。为其在defaultConfig分支中增加上
ndk {
moduleName "jnitest"
}
3. 添加Application.mk 和 Android.mk文件
Application.mk
APP_PROJECT_PATH := $(call my-dir)/project
APP_MODULES := nativebt
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := jnitest
LOCAL_SRC_FILES := jnitest.c
LOCAL_DEFAULT_CPP_EXTENSION := cpp
#include $(BUILD_EXECUTABLE)
include $(BUILD_SHARED_LIBRARY)
然后进行编译, 会出现no rule to make target....错误, 按照网上的经验, 生成一个空的empty.c文件, 错误通过.
终于编译成功, 编译出来的库文件在如下路径:
<project>\app\build\intermediates\ndk\debug\lib\
至此, 开发环境建立成功。
- Android Studio建立jni开发环境
- Android Studio建立jni开发环境
- Android Studio建立jni开发环境
- Android Studio建立jni开发环境
- Android Studio开发JNI
- Android Studio JNI开发
- Android Studio jni开发
- Android Studio jni开发
- android studio Jni开发
- Android studio JNI开发
- Android Studio JNI开发
- Android Studio JNI开发
- android studio jni开发
- Android Studio Jni开发
- android studio 2.0下 jni开发环境的搭建
- Android studio环境下的 NDK(jni)开发
- Android Studio 配置JNI和NDK开发环境
- Android Studio利用Gradle配置NDK-JNI开发环境
- BGRA转灰度数据
- 【LeetCode 】 Median of Two Sorted Arrays 简单高效的解法
- 使 ZCImagePickerController 支持预览功能
- atexit()函数调用注册函数的顺序
- Linux基础命令 最后附教学视频
- Android Studio建立jni开发环境
- 【自制】3D全息投影
- create来save数据,表格中和post过来的数据必须一致;
- 【9203】众数
- snprintf与_snprintf的区别
- 怎么运用ABBYY FineReader实现JPG到PDF的转换
- JQuery ajax设置Request Headers
- String="" 与new String()的区别
- 使用Python学习selenium测试工具-6:同步