今天攻克了JNI WARNING: illegal start byte 0x81这个问题. 问题出现的现象是通过jni调用加密方法,调用之后返回密文内容,结果就出现这个问题. 在国外查找一段时间之后.出现这个问题的解决办法在于:使用newStringUTF方法使用的char *数据要求是可见的内容.所以才导致数据不能正常的返回: 所以一般对我们来说.採用NDK进行加密的时候,加密的密文假设是不可见的字符的话,那么就须要对数据进行一次BASE64编码,在返回String. 或者直接使用byte返…
* Android NDK JNI 入门笔记目录 * 开头 前面的学习,我们已经掌握了 NDK 开发的必备知识. 下一步就要多实践,通过创造问题并解决问题,来增加熟练度,提升经验. 日常开发中,经常会用到 MD5 SHA1 SHA256 等 HASH 算法,我们可以在 Native 实现这些功能. Hash 算法 HASH 主要用于信息安全领域中加密算法,他把一些不同长度的信息转化成杂乱的 128 位的编码里,叫做 HASH 值.也可以说,hash 就是找到一种数据内容和数据存放地址之间的映射关…
关于ndk jni网上的介绍很多,其实我了解这个主要是因为自己是做嵌入式的,一则是对C语音有感情  二则是知道jni  可以绕过framework 框架直接操作硬件抽象层. 1.概述 对于ndk, jni的理解,我是比较肤浅含糊的.我就这么理解把,JNI是Java Native Interface的缩写,中文为JAVA本地调用.可以调用本地的c.c++.而ndk就是谷歌提供的实现jni的包,开发环境了.说起来比较抽象就是NDK 是真实存在的要去下载的,和SDK一样.而jni就是一种java 本地…
原因是在eclipse编辑环境中没有找到对应的include中的文件.解决方法是将包含该文件的include目录作为新的linked folder加入工程中.具体方法如下:1. 右击工程->New->Folder2. 对话框中点击Advanced 3. 选择Link to alternate location (Linked Folder),选择需要的include目录 4. Finish后刷新工程,问题解决. include 目录可以在ndk的安装目录中找到 例如:/android-ndk-…
JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8: illegal start byte 0xfe 在使用Jni的JNIEnv->NewStringUTF的时候抛出了异常"JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8: illegal start byte 0xfe ".网上搜索了一下,这个异常是由于J…
遇到问题: Android NDK: jni/Android.mk: Cannot find module with tag 'XXXXXXXXX' in import path Android NDK: Are you sure your NDK_MODULE_PATH variable is properly defined ? Android NDK: The following directories were searched: Android NDK: 查看日志: C:\Users\…
背景: 最近一个月一直在做移植库的工作,将c代码到share library移植到Android平台.这就涉及到Android NDK(native develop kit)内容.这里只想记录下JNI(java native interface)经常遇到到问题. 问题1.  忘记delete local reference.带New到方法(如:NewByteArray)这样到方法比较好辨认,需要手动调用DeleteLocalRef()来释放(返回值除外).比较特殊的一个方法是:GetByteAr…
转载的! Java Native Interface (JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互.JNI 是本地编程接口,它使得在 Java 虚拟机 (VM) 内部运行的 Java 代码能够与用其它编程语言(如 C.C++ 和汇编语言)编写的应用程序和库进行交互操作. 1.从如何载入.so档案谈起 由于Android的应用层的类都是以Java写的,这些Java类编译为Dex型式的Bytecode之后,必须靠Dalvik虚拟机(VM: Virtual Mac…
转载请注明出处:http://www.cnblogs.com/fpzeng/p/4281801.html 源码请见 https://github.com/fpzeng/HelloJNI PC系统: ubuntu 12.04 Android SDK: android-sdk-linux_r24 Android NDK:android-ndk-r10d 概述 在android上使用ndk的步骤: 创建java文件,声明native方法: 使用javah生成C语言接受的头文件*.h: 创建*.c文件,…
转载的! Java Native Interface (JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互.JNI 是本地编程接口,它使得在 Java 虚拟机 (VM) 内部运行的 Java 代码能够与用其它编程语言(如 C.C++ 和汇编语言)编写的应用程序和库进行交互操作. 1.从如何载入.so档案谈起 由于Android的应用层的类都是以Java写的,这些Java类编译为Dex型式的Bytecode之后,必须靠Dalvik虚拟机(VM: Virtual Mac…