Android NDK——Log
来源:互联网 发布:表情训练的软件 编辑:程序博客网 时间:2024/04/29 01:35
使用ndk开发jni时,Java类中的本地方法名不能有下划线,有下划线时函数映射会出现错误
昨天写的Log程序运行起来就崩溃,检查log信息,发现问题出在本地方法中,但一直不明白是怎么回事,开始以为是编译的问题。
之前写了一个JNI的测试程序,那个可以运行,于是对比分析了一下,发现只有本地方法的参数类型不一致,测试程序的参数都是int型,log程序是String,于是把log程序的参数也改成int型,结果运行正常。
原来在JNI中输出log的方法__android_log_print(ANDROID_LOG_DEBUG, tag, msg);的参数是char*,直接传jstring会报错,对比Log源码,发现JNIEnv中的GetStringUTFChars函数能够把jstring转成char*,用转型后的char*数据就不会崩溃,当然使用GetStringUTFChars后,在char*数据用完后要调用ReleaseStringUTFChars方法释放资源。
JVM加载库文件后,会调用库中的JNI_OnLoad方法,如果没写这个方法,会在Log信息中提示:No JNI_OnLoad found in......
java中的方法到jni中的方法有一个映射过程,映射方法有两种,可以叫静态和动态。
静态方法是java中的方法到jni中的方法用一种严格的方式映射,最终结果是jni中的方法名必须按照特定的格式来写,不然找不到方法。
动态方法是在上述的JNI_OnLoad方法中动态的向JVM注册jni方法和java方法的关联,这样做jni中的方法名可以随意。
0 0
- Android NDK——Log
- android ndk log
- android ndk log
- android NDK之Log
- Android NDK 打印log
- android ndk log
- android ndk 使用log
- android ndk 使用LOG
- Android NDK(学习笔记四)—— 在NDK开发中JNI打印Log信息
- Android NDK JNI LOG 打印
- android NDK增加log调试
- android ndk打印log信息
- Android NDK Log信息打印
- android ndk log使用demo
- Android NDK开发(三)——常见错误集锦以及LOG使用
- Android NDK开发(三)——常见错误集锦以及LOG使用,androidndk
- Android NDK :在 C语言代码中输出Log 法—
- Android—初识NDK
- Xcode 静态库调试策略
- 一些简单的选择题
- HDU-1062-Text Reverse
- ios开发——定时任务
- Android:android.database.sqlite.SQLiteConstraintException:UNIQUE constraint failed
- Android NDK——Log
- Android代码内存优化建议-Android资源篇
- canvas 动画制作——时钟
- 100层楼摔鸡蛋问题
- 设备未就绪异常
- Android蓝牙开发(二)
- 使用U盘安装14.04 服务器版本时 提示无法挂载CD-ROM
- 桂林山水甲天下
- BaseExpandableListAdapter应用:QQ好友列表,折叠式列表