开发工具: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)
后来忽然发如今Jenkins上编译的包能够运行,文件管理不会崩溃,只是取得的文件size是0,并且不能删除和重命名;可是展现是没有问题的;code
因此之后有人遇到这样的问题,就别费劲弄了,多是签名的问题;orm
到如今我也不明白是怎么回事,如今还有几个疑问:
1. 调用listfile有两个地方:一个是后台线程池遍历sdcard,取得apk文件功能; 一个是有界面的文件管理器功能; 后台的遍历到那个运行不会崩溃,有界面的文件管理就崩溃了,即便我这两个地方把代码改为如出一辙的,同样崩溃;
2. 我在网上下载两个文件管理器的源码:点击打开连接, 的能够下载源码看看,其中FileExplorer本地运行崩溃,Androidfilemanager运行良好;
这就致使了矛盾, 为何我本身的包可能跟签名有关???而下载的源码貌似又跟签名无关。。。
求大神解答,若是确少乱码文件,能够回复我,我上传;