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/lang/String;)[Ljava/lang/String; (NewStringUTF)
01-19 14:33:39.573: I/dalvikvm(566): "main" prio=5 tid=1 NATIVE
01-19 14:33:39.573: I/dalvikvm(566):   | group="main" sCount=0 dsCount=0 obj=0x40997460 self=0x12810
01-19 14:33:39.573: I/dalvikvm(566):   | sysTid=566 nice=0 sched=0/0 cgrp=default handle=1074082952
01-19 14:33:39.573: I/dalvikvm(566):   | schedstat=( 334860174 892884911 75 ) utm=13 stm=20 core=0
01-19 14:33:39.573: I/dalvikvm(566):   at java.io.File.listImpl(Native Method)
01-19 14:33:39.573: I/dalvikvm(566):   at java.io.File.list(File.java:749)
01-19 14:33:39.573: I/dalvikvm(566):   at java.io.File.listFiles(File.java:791)

在网上找了一个可能解决的办法,修改checkjni.c文件。但是感觉不是特别靠谱。具体没有尝试这种方法可不行不。通过搜索相关错误,我坚信应该是字符串编码问题导致。在参考这个贴子,完美解决了这个问题。这个帖子链接:https://groups.google.com/forum/#!topic/android-developers/y4lyEccZ--g

在帖子提供解决的方法:

Convert this string into UTF-8 first,then call NewStringUTF

eg:fileName=new String(fileName.getBytes(), "UTF-8");

时间: 2024-12-06 20:43:29

Android JNI WARNING: illegal continuation byte 0xd2的相关文章

Android NDK JNI WARNING: illegal start byte 0x

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

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() i

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

原文网址:http://jinguo.iteye.com/blog/696185 Java Native Interface (JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互.JNI 是本地编程接口,它使得在 Java 虚拟机 (VM) 内部运行的 Java 代码能够与用其它编程语言(如 C.C++ 和汇编语言)编写的应用程序和库进行交互操作. 1.从如何载入.so档案谈起 由于Android的应用层的类都是以Java写的,这些Java类编译为Dex型式的Byt

[转载]—— Android JNI知识点

Java Native Interface (JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互.JNI 是本地编程接口,它使得在 Java 虚拟机 (VM) 内部运行的 Java 代码能够与用其它编程语言(如 C.C++ 和汇编语言)编写的应用程序和库进行交互操作. 1.从如何载入.so档案谈起 由于Android的应用层的类都是以Java写的,这些Java类编译为Dex型式的Bytecode之后,必须靠Dalvik虚拟机(VM: Virtual Machine)

基于Eclipse的Android JNI层测试应用开发过程记录

前言 本文记录一个Java层与JNI层参数与数据交互的应用程序开发过程,为实现一个功能完整的带Java与JNI的应用程序打下基础.本文假设读者已搭建好Android的Eclipse与NDK开发环境,包括通过ADB连接手机的配置. 1. 构建基本的Android应用程序 1.1 引导界面配置 打开Eclipse,"File"->"New"->"Android Application Project",在弹出界面,配置如下(红色框表示不是

深入浅出 - Android系统移植与平台开发(十二)- Android JNI机制

第五章.JNI机制 4.1 JNI概述 由前面基础知识可知,Android的应用层由Java语言编写,Framework框架层则是由Java代码与C/C++语言实现,之所以由两种不同的语言组合开发框架层,是由于Java代码是与硬件环境彻底"隔离"的跨平台语言,Java代码无法直接操作硬件. 比方:Android系统支持大量传感器.Java运行在虚拟机中,无法直接得到传感器数据.而Android系统基于Linux操作系统.在Linux操作系统中C/C++通过Linux提供的系统调用接口能

Android JNI初体验

开始接触Android JNI层面的内容,推荐一本不错的入门级的书<Android的设计与实现:卷一>,这两天看了一下关于Java层和Native层函数映射的章节,加深对JNI的理解. 先是写了一个非常简单的计算器,关键的运算放在Native层实现,然后把运算的结果返回到Java层,写这个的时候还是自己手动建jni文件夹,javah的命令行,写makefile文件,用ndk-build命令行来编译,后来发现要调试C代码了,才发现高版本的ndk环境已经全都集成好了,编译,运行,调试甚至和VS差不

Android JNI知识简介

Java Native Interface (JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互.JNI 是本地编程接口,它使得在 Java 虚拟机 (VM) 内部运行的 Java 代码能够与用其它编程语言(如 C.C++ 和汇编语言)编写的应用程序和库进行交互操作. 1.从如何载入.so档案谈起 由于Android的应用层的类都是以Java写的,这些Java类编译为Dex型式的Bytecode之后,必须靠Dalvik虚拟机(VM: Virtual Machine)