2

代码如下:

android.util.Log.i("QRDFileExplorer","loadDir().before=feaffdsafdsf");
String[] names=f.list();
android.util.Log.i("QRDFileExplorer","loadDir().string names=");

代码大部分时间都很好,但是如果目录下有一个文件名很长(超过90个汉字,大约180个字节)的文件,那么当涉及到时f.list(),整个过程就死了抛出任何异常。

日志猫:

04-10 16:46:49.129: I/QRDFileExplorer(16413): loadDir().before=feaffdsafdsf
04-10 16:46:49.129: A//system/bin/app_process(16413): stack corruption detected: aborted
04-10 16:46:49.149: E/COREDUMP(16500): /sdcard1/coredump Read-only file system
04-10 16:46:49.159: I/WindowState(586): WIN DEATH: Window{41920440 com.android.qrdfileexplorer/com.android.qrdfileexplorer.QRDFileExplorer paused=false}
04-10 16:46:49.159: I/ActivityManager(586): Process com.android.qrdfileexplorer (pid 16413) has died.
04-10 16:46:49.169: W/ActivityManager(586): Force removing ActivityRecord{416bd738 com.android.qrdfileexplorer/.QRDFileExplorer}: app died, no saved state
04-10 16:46:49.239: W/InputMethodManagerService(586): Got RemoteException sending setActive(false) notification to pid 16413 uid 10017

日志没有打印,android.util.Log.i("QRDFileExplorer","loadDir().string names=");所以一定是问题String[] names=f.list();,我相信代码是正确的,我们都是这样列出文件的,所以是电话平台的问题吧?这是关于记忆的东西。任何对此了解更多以及如何解决此问题的人至少可以向用户发出警告,而不是突然关闭。

4

0 回答 0