Eclipse Android JNI初探小结
来源:互联网 发布:centos安装中文包 编辑:程序博客网 时间:2024/06/06 02:46
1、Eclipse没有NDK选项解决
NDK需要ADT插件支持;ADT可以下载到本地或是联网下载;
具体可以参照http://blog.csdn.net/shi_weihappy/article/details/42238625点击打开链接
2、出现NDK之后;配置NDK路径
打开Window-->Preferences-->NDK-->NDK Location 选择下载好的
D:\android-ndk32-r10b-windows-x86\android-ndk-r10b
如下图所示:
3、编写JNI
package com.example.myfirstjni;public class MyJni {static {System.loadLibrary("MyFirstJni");}public native static String getString();}
4、把MyJni转化为二进制文件
命令行切换到工程目录下,cd-->myfirstjni下面;执行javac MyJni.java;在myfirstjni路径下面会生成MyJni.class文件;
之后cd 到src目录下,执行javah com.example.myfirstjni.MyJni;相关图如下所示
5、右键工程项目;在Android Tools-->Add Native Support添加本地支持,在根目录中会生成jni文件夹,下面有.mk文件
和.cpp类,此时我们把上一步生成的头文件放到jni中备用,也可以自己生成Application.mk来编译相关的支持CPU的.so文件;
默认的是armeabi平台的CPU;相关的路径和展示如下图所示
.mk文件里面可以不动
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := MyFirstJniLOCAL_SRC_FILES := MyFirstJni.cppinclude $(BUILD_SHARED_LIBRARY)Application.mk
APP_ABI := all //这里可以修改比如APP_ABI := armeabi-v7aMyFirstJni.cpp类里面,具体的参数需要含义自己百度
#include <jni.h>#include <com_example_myfirstjni_MyJni.h>//导入头文件,如果有需要JNIEXPORT jstring JNICALL Java_com_example_myfirstjni_MyJni_getString (JNIEnv *env, jclass){ return env->NewStringUTF("I'm ok!");}.h文件里
/* DO NOT EDIT THIS FILE - it is machine generated */#include <jni.h>/* Header for class com_example_myfirstjni_MyJni */#ifndef _Included_com_example_myfirstjni_MyJni#define _Included_com_example_myfirstjni_MyJni#ifdef __cplusplusextern "C" {#endif/* * Class: com_example_myfirstjni_MyJni * Method: getString * Signature: ()Ljava/lang/String; */JNIEXPORT jstring JNICALL Java_com_example_myfirstjni_MyJni_getString (JNIEnv *, jclass);#ifdef __cplusplus}#endif#endif这里会报错,就是Type 'jclass' could not be resolved
此时需要配置一下
paths 和 Symbols;
右键工程项目-->Properties-->C/C++ General-->Paths and Symbols;右边选择include标签
点击OK即可
6、后面直接编译即可(注意:在直接run的时候记得把工程项目切换为java;在add native support的时候会切换为C/C++的模式)
总结:有很多很多的坑,大家自己慢慢尝试。
- Eclipse Android JNI初探小结
- Android JNI问题小结
- Android JNI开发小结
- 【Android】Eclipse JNI开发
- android eclipse jni开发
- Android游戏开发----JNI小结
- Android游戏开发----JNI小结
- Android Studio: JNI 使用小结
- Android jni 应用初探 (MAC 环境)
- Android之——JNI初探
- Android之——JNI初探
- android学习之jni编程初探
- android studio2.2初探ndk jni开发
- Android之——JNI初探
- Android Studio使用CMake编译JNI初探
- jni初探
- jni初探
- JNI初探
- 制作ZedBoard-linaro-desktop-ubuntu全过程之运行linaro系统
- python网络数据采集-Ajax和动态HTML
- 如何合理地估算线程池大小?
- angular的敏感字,判断不为空,不重复运用
- 如何去掉C#字符串中的所有空格
- Eclipse Android JNI初探小结
- J2EE:关于DAO和DTO
- Netty长连接测试,参数设置
- sqlite3命令导出txt或csv
- Git进阶命令(三)之Git远程仓库操作
- Eclipse搭建SpringMVC+Spring+MyBatis框架
- Hadoop示例程序WordCount运行及详解
- d3d11的IASetVertexBuffers和IASetIndexBuffer学习
- 单测关于mock的总结