0
如何處理filenotfoundexception。我的應用程序在某些設備上崩潰,但在其他設備上運行良有沒有嘗試抓住處理文件沒有找到exeption或我怎麼處理這個錯誤。java.io.FileNotFoundException:/storage/emulated/0/user_image_name.jpg打開失敗:ENOENT(沒有這樣的文件或目錄)崩潰應用程序
03-31 12:25:49.477: E/MediaPlayer(28356): error: /storage/emulated/0/user_image_name.jpg: open failed: ENOENT (No such file or directory)
03-31 12:25:49.477: E/MediaPlayer(28356): java.io.FileNotFoundException: /storage/emulated/0/user_image_name.jpg: open failed: ENOENT (No such file or directory)
03-31 12:25:49.477: E/MediaPlayer(28356): at libcore.io.IoBridge.open(IoBridge.java:416)
03-31 12:25:49.477: E/MediaPlayer(28356): at java.io.FileInputStream.<init>(FileInputStream.java:78)
03-31 12:25:49.477: E/MediaPlayer(28356): at name.secondname.app.utils.HttpRequest.doFileUpload(HttpRequest.java:2949)
03-31 12:25:49.477: E/MediaPlayer(28356): at name.secondname.app.moncompte.Editer$uploadImageLoadingTask.doInBackground(Editer.java:1099)
03-31 12:25:49.477: E/MediaPlayer(28356): at name.secondname.app.moncompte.Editer$uploadImageLoadingTask.doInBackground(Editer.java:1)
03-31 12:25:49.477: E/MediaPlayer(28356): at android.os.AsyncTask$2.call(AsyncTask.java:287)
03-31 12:25:49.477: E/MediaPlayer(28356): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
03-31 12:25:49.477: E/MediaPlayer(28356): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
03-31 12:25:49.477: E/MediaPlayer(28356): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
03-31 12:25:49.477: E/MediaPlayer(28356): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
03-31 12:25:49.477: E/MediaPlayer(28356): at java.lang.Thread.run(Thread.java:856)
03-31 12:25:49.477: E/MediaPlayer(28356): Caused by: libcore.io.ErrnoException: open failed: ENOENT (No such file or directory)
03-31 12:25:49.477: E/MediaPlayer(28356): at libcore.io.Posix.open(Native Method)
03-31 12:25:49.477: E/MediaPlayer(28356): at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
03-31 12:25:49.477: E/MediaPlayer(28356): at libcore.io.IoBridge.open(IoBridge.java:400)
03-31 12:25:49.477: E/MediaPlayer(28356): ... 10 more
03-31 12:25:49.497: E/AndroidRuntime(28356): FATAL EXCEPTION: AsyncTask #5
03-31 12:25:49.497: E/AndroidRuntime(28356): java.lang.RuntimeException: An error occured while executing doInBackground()
03-31 12:25:49.497: E/AndroidRuntime(28356): at android.os.AsyncTask$3.done(AsyncTask.java:299)
03-31 12:25:49.497: E/AndroidRuntime(28356): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
03-31 12:25:49.497: E/AndroidRuntime(28356): at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
03-31 12:25:49.497: E/AndroidRuntime(28356): at java.util.concurrent.FutureTask.run(FutureTask.java:239)
03-31 12:25:49.497: E/AndroidRuntime(28356): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
03-31 12:25:49.497: E/AndroidRuntime(28356): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
03-31 12:25:49.497: E/AndroidRuntime(28356): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
03-31 12:25:49.497: E/AndroidRuntime(28356): at java.lang.Thread.run(Thread.java:856)
03-31 12:25:49.497: E/AndroidRuntime(28356): Caused by: java.lang.NullPointerException
03-31 12:25:49.497: E/AndroidRuntime(28356): at name.secondname.app.utils.HttpRequest.doFileUpload(HttpRequest.java:3006)
03-31 12:25:49.497: E/AndroidRuntime(28356): at name.secondname.app.moncompte.Editer$uploadImageLoadingTask.doInBackground(Editer.java:1099)
03-31 12:25:49.497: E/AndroidRuntime(28356): at name.secondname.app.moncompte.Editer$uploadImageLoadingTask.doInBackground(Editer.java:1)
03-31 12:25:49.497: E/AndroidRuntime(28356): at android.os.AsyncTask$2.call(AsyncTask.java:287)
03-31 12:25:49.497: E/AndroidRuntime(28356): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
03-31 12:25:49.497: E/AndroidRuntime(28356): ... 4 more
你是**假設**文件路徑是什麼,或者你在運行時使用適當的API發現它嗎?無論如何,您的程序必須考慮到文件(甚至整個外部存儲裝載)可能不存在。因此,首先解決任何錯誤,例如假設某個設備上的路徑是什麼,或者程序邏輯錯誤導致您認爲該文件尚未創建時應該在那裏。但是在那之後,你可能應該在try/catch塊中處理Exception,因爲文件/文件系統可能會在你身上消失。 –