crash - JNI WARNING: input is not valid modified utf-8: illegal continuation byte

the key point is "Modified UTF-8" is not like "Regular UTF-8", a legal
Rgular UTF8 code sequence may be considered illegal against Modified
UTF8.

One work around in NDK level is : converting utf8 to native utf16, then
use NewString() instead of NewStringUTF().

crash - JNI WARNING: input is not valid modified utf-8: illegal
continuation byte

时间: 2024-10-11 05:13:55

crash - JNI WARNING: input is not valid modified utf-8: illegal continuation byte的相关文章

JNI WARNING: input is not valid Modified UTF-8

最近使用NDK进行项目开发过程中,debug模式下logcat输出以下错误(PS:正常run没有任何错误,JNI方法执行没有问题): 05-28 13:48:10.422: W/dalvikvm(15024):              JNI WARNING: input is not valid Modified UTF-8: illegal start byte 0xa5 05-28 13:48:10.422: W/dalvikvm(15024):              string:

Android JNI WARNING: illegal continuation byte 0xd2

在sdcard中创建接收文件名字时候,由于文件名编码的问题导致下面的错误. 01-01 08:10:11.054: W/dalvikvm(1824): JNI WARNING: illegal continuation byte 0xd2 01-01 08:10:11.054: W/dalvikvm(1824): string: '???.docx' 01-01 08:10:11.054: W/dalvikvm(1824): in Ljava/io/File;.listImpl (Ljava/l

Android NDK JNI WARNING: illegal start byte 0x

今天解决了JNI WARNING: illegal start byte 0x81这个问题: 问题出现的现象是通过jni调用加密方法,调用之后返回密文内容,结果就出现这个问题. 在国外查找一段时间之后,出现这个问题的原因在于:使用newStringUTF方法使用的char *数据要求是可见的内容,所以才导致数据不能正常的返回: 所以一般对我们来说,采用NDK进行加密的时候,加密的密文如果是不可见的字符的话,那么就需要对数据进行一次BASE64编码,在返回String. 或者直接使用byte返回到

[工作积累] Google/Amazon平台的各种坑

所谓坑, 就是文档中没有标明的特别需要处理的细节, 工作中会被无故的卡住各种令人恼火的问题. 包括系统级的bug和没有文档化的限制. 继Android的各种坑后, 现在做Amazon平台, 遇到的坑很多, 这里记录一下备忘: 先汇总下Android Native下的各种问题, 当然有些限制有明确文档说明,不算坑,但是限制太多还是很不爽: android平台下的某些限制: android下的各种坑 (我的C/C++/汇编/计算机原理博客) OBB的各种bug: OBB的解决方案 arm gcc t

【转】 Android 开发 之 JNI入门 - NDK从入门到精通

原文网址:http://blog.csdn.net/shulianghan/article/details/18964835 NDK项目源码地址 : -- 第一个JNI示例程序下载 : GitHub - https://github.com/han1202012/NDKHelloworld.git -- Java传递参数给C语言实例程序 : GitHub - https://github.com/han1202012/NDKParameterPassing.git --C语言回调Java方法示例

jni入门

NDK项目源码地址 : -- 第一个JNI示例程序下载 : GitHub - https://github.com/han1202012/NDKHelloworld.git -- Java传递参数给C语言实例程序 : GitHub - https://github.com/han1202012/NDKParameterPassing.git --C语言回调Java方法示例程序 : GitHub - https://github.com/han1202012/NDK_Callback.git --

NDK开发基本知识

(3) NDK开发中乱码问题 解决乱码思路 : C语言编译的时候用的是 ISO-8859-1 码表进行编码, 如果我们使用C语言jni开发, 需要进行转码操作; -- 将ISO-8859-1转为UTF-8字符: String string = new String(str.getBytes("iso8859-1"), "UTF-8"); 示例 : 添加中文jni调用 : 将jni中的hello.c 中返回的字符串修改为中文, 重新编译 .so 静态库文件; -- 修

图片通过Base64Coder编码、解码

通过这个编码类我们可以将图片转换为这个编码的字符串,上传到服务器. 这个编码是来自小马的一个范例,我看了下挺有用的.所以就放上来以备不时之需. 先说下用法: /** * 下面注释的方法是将裁剪之后的图片以Base64Coder的字符方式上 * 传到服务器,QQ头像上传采用的方法跟这个类似 */ ByteArrayOutputStream stream = new ByteArrayOutputStream(); photo.compress(Bitmap.CompressFormat.JPEG,

Android技术13:NDK中无法返回中文问题解决

1问题 为了加强软件的安全性,将http请求,封装在jni中,即通过c语言实现http请求,返回字符串.然而字符串往往包含中文,当返回类型为jstring时,就会出现JNI WARNING: illegal continuation byte 0xd0这错误,这是因为jni中c文件有中文, 中文不能被识别.无法使用(*env)->NewStringUTF(env,s);返回字符串. 2.方案 2.1将native方法返回类型为byte数组  例如:private native byte[] ge