mFile.listFiles() JNI WARNING: input is not valid Modified UTF-8: illegal start byte 0xb7

开发工具:Android Studio1.2java

真机:华硕 ASUS_T00J app

功能:文件管理工具


以前软件有个功能是:文件管理功能,发现一个问题,sdcard里面的apk 文件filesize为0,缘由:文件名不是UTF-8的;开发工具

后来就在本地调试,发现只要一进去那个有乱码文件的文件夹,软件就会崩溃;spa

后来各类折腾。。。略过.net

文件截图:线程

出错log以下:调试

W/dalvikvm﹕ JNI WARNING: input is not valid Modified UTF-8: illegal start byte 0xb7                                                                      
 W/dalvikvm﹕ string: '????QQ.mp3'                                                                                                                         
 W/dalvikvm﹕ in Ljava/io/File;.listImpl:(Ljava/lang/String;)[Ljava/lang/String; (NewStringUTF)                                                            
 I/dalvikvm﹕ "main" prio=5 tid=1 NATIVE                                                                                                                   
 I/dalvikvm﹕ | group="main" sCount=0 dsCount=0 obj=0x42f06460 self=0x42ef0320                                                                             
 I/dalvikvm﹕ | sysTid=7188 nice=0 sched=0/0 cgrp=apps handle=1073954848                                                                                   
 I/dalvikvm﹕ | state=R schedstat=( 6269686245 258615653 3600 ) utm=556 stm=70 core=3                                                                      
 I/dalvikvm﹕ #00  pc 0010b068  /system/lib/libdvm.so (dvmDumpNativeStack(DebugOutputTarget const*, int)+72)                                               
 I/dalvikvm﹕ #01  pc 000e7b0b  /system/lib/libdvm.so (dvmDumpThreadEx(DebugOutputTarget const*, Thread*, bool)+1099)                                      
 I/dalvikvm﹕ #02  pc 000e7d75  /system/lib/libdvm.so (dvmDumpThread(Thread*, bool)+69)                                                                    
 I/dalvikvm﹕ #03  pc 000a1893  /system/lib/libdvm.so (ScopedCheck::checkUtfString(char const*, bool)+259)                                                 
 I/dalvikvm﹕ #04  pc 000a25cb  /system/lib/libdvm.so (ScopedCheck::check(bool, char const*, ...)+1275)                                                    
 I/dalvikvm﹕ #05  pc 000a6674  /system/lib/libdvm.so                                                                                                      
 I/dalvikvm﹕ #06  pc 0005e5e9  /system/lib/libjavacore.so (toStringArray(_JNIEnv*, std::vector<std::string, std::allocator<std::string> > const&)+217)    
 I/dalvikvm﹕ #07  pc 00018688  /system/lib/libjavacore.so                                                                                                 
 I/dalvikvm﹕ #08  pc 0007c02f  /system/lib/libdvm.so (dvmPlatformInvoke+79)                                                                               
 I/dalvikvm﹕ at java.io.File.listImpl(Native Method)                                                                                                      
 I/dalvikvm﹕ at java.io.File.list(File.java:749)                                                                                                          
 I/dalvikvm﹕ at java.io.File.listFiles(File.java:791)                                                                                                     
 I/dalvikvm﹕ at java.io.File.listFiles(File.java:826)                                                                                                     
 I/dalvikvm﹕ at com.pkgname.filemanager.FileSystemNode._getChildren(FileSystemNode.java:95)                                                    
 I/dalvikvm﹕ at com.pkgname.filemanager.FileSystemNode.getChildren(FileSystemNode.java:206)                                                    
 I/dalvikvm﹕ at com.pkgname.filemanager.FileManager.createFileListAdapter(FileManager.java:556)                                                
 I/dalvikvm﹕ at com.pkgname.filemanager.FileManager.selectDirNode(FileManager.java:583)                                                        
 I/dalvikvm﹕ at com.pkgname.filemanager.FileManager.onClickDirectory(FileManager.java:561)

这是在as上直接运行apk出问题,找了一个下午,大部分都是说须要修改jni,可是第三方应用不能这样干啊;

后来忽然发如今Jenkins上编译的包能够运行,文件管理不会崩溃,只是取得的文件size是0,并且不能删除和重命名;可是展现是没有问题的;code

因此之后有人遇到这样的问题,就别费劲弄了,多是签名的问题;orm


到如今我也不明白是怎么回事,如今还有几个疑问:

1. 调用listfile有两个地方:一个是后台线程池遍历sdcard,取得apk文件功能; 一个是有界面的文件管理器功能; 后台的遍历到那个运行不会崩溃,有界面的文件管理就崩溃了,即便我这两个地方把代码改为如出一辙的,同样崩溃;

2. 我在网上下载两个文件管理器的源码:点击打开连接,   的能够下载源码看看,其中FileExplorer本地运行崩溃,Androidfilemanager运行良好;

这就致使了矛盾, 为何我本身的包可能跟签名有关???而下载的源码貌似又跟签名无关。。。

求大神解答,若是确少乱码文件,能够回复我,我上传;