コードは次のとおりです。
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();
、コードは正しいと思います。私たちは皆、この方法でファイルを一覧表示しています。これは、電話プラットフォームに関する問題ですよね? それは記憶か何かに関するものです。これについて詳しく知り、少なくとも突然シャットダウンする以外にユーザーに警告を与えるためにこれを解決する方法を知っている人。