JNI开发的常见错误&&Android.mk文件说明&& jni开发的简便流程
来源:互联网 发布:甘肃教师网络研修社区 编辑:程序博客网 时间:2024/06/11 20:43
1.jni开发的常见错误
[1]Your APP_BUILD_SCRIPT points to an unknown file: ./jni/Android.mk
说明你的jni目录下需要一个Android.mk文件
[2]11-21 02:26:39.995: E/AndroidRuntime(434): Caused by: java.lang.UnsatisfiedLinkError: helloFromC
11-21 02:26:39.995: E/AndroidRuntime(434): at com.itheima.jnierror.MainActivity.helloFromC(Native Method)
11-21 02:26:39.995: E/AndroidRuntime(434): at com.itheima.jnierror.MainActivity.click(MainActivity.java:18)
11-21 02:26:39.995: E/AndroidRuntime(434): … 14 more
说明没有加载 库文件
[3]11-21 02:29:12.358: E/AndroidRuntime(1527): Caused by: java.lang.UnsatisfiedLinkError: Couldn’t load hello: findLibrary returned null
说明你生成库so文件 和你模拟器 的架构不一致
解决方案: 在jni目录下创建一个Application.mk文件 在文件中写下对应的APP_ABI APP_ABI := armeabi-v7a APP_ABI := x86 APP_ABI := mips APP_ABI := armeabi armeabi-v7a x86 mips APP_ABI := all
[4]jni/Hello.c:10:3: error: parameter name omitted
说明你声明的参数遗漏了
[5]jni/Hello.c:9:1: error: unknown type name ‘JNIEXPORT’
说明 你忘记引入 jni.h头文件了
[6]jni/Hello.c:2:20: fatal error: stulib.h: No such file or directory
说明 有可能 引入的头文件 字母写错了
[7]11-21 09:14:36.148: E/dalvikvm(1565): VM aborting
说明你调用的方法写错了
2.Android.mk文件说明
#$()调用函数 获取当前文件的目录LOCAL_PATH := $(call my-dir)#$清空变量 相当于初始化include $(CLEAR_VARS)# hello 是生成库文件的名字 会在你写的hello前面自动补上一个lib LOCAL_MODULE := hello# 要编译C的源文件 LOCAL_SRC_FILES := Hello.c#引入 动态库文件 include $(BUILD_SHARED_LIBRARY)#动态库 和 静态库的区别 #动态库一般以.so .dll 命名 动态库的体积小 里面只是包含代码的引用 #静态库一般以.a 结尾 静态库体积大
3. jni开发的简便流程(必须掌握)
[1]在本地声明一个本地方法
[2]在eclipse下window 下 配置ndk环境
[3]使用javah生成jni样式的头文件 根据你个人习惯先后我所谓
[4]要添加本地支持 从Androidtools—>add native support
[5]默认生成一个cpp格式文件 把cpp改成c Android.mk配置文件 改一下LOCAL_SRC_FILES := simple.c
[6]实现C代码
[7]给C一锤子 只需要使用一锤子 一锤定音
[8]最后一步 一定要记得 加载库文件 static 静态方法去添加
System.loadLibrary(“simple”);
- JNI开发的常见错误&&Android.mk文件说明&& jni开发的简便流程
- jni的简便开发流程
- android jni开发中常见的错误
- eclipse中的Jni开发流程(二)——JNI简便的开发流程
- Android--JNI的开发流程
- Android JNI 开发的流程
- android jni编译时Android.mk文件的规范说明
- JNI的开发流程
- jni开发之 Android.mk文件解析
- jni开发常见的几种错误
- Android JNI Android.mk文件的分析
- Android中JNI开发之常见错误
- android jni 开发流程
- Android JNI开发流程
- android jni开发流程
- Android JNI开发流程
- JNI开发之JNI常见错误
- jni开发中的常见错误
- Node.js内存泄漏分析
- poj-1905 Expanding Rods (二分)
- uva11078【RMQ】
- PageSetupDialog 控件页边距bug的完整解决
- iOS开发调试技巧总结
- JNI开发的常见错误&&Android.mk文件说明&& jni开发的简便流程
- Ajax原理学习
- 片上网络
- 数据结构算法之排序系列Java、C源码实现(7)--归并排序
- 优先级队列:PriorityQueue
- stm32之Cortex系统定时器(SysTick)
- 高斯消元模板
- 使用OPENCV2.4.9中CvvImage没有的问题
- FTP