前言
目前android上的絕大多數項目還是由JAVA開發的,而java最常見的異常之一就是java.io.IOException,這個異常我們在android開發中也會經常遇到,這裡整理了一些在Android開展法中常見的IOException情況,但在實際中,造成IOException異常的原因可能多種多樣,這裡我隻整理了幾種,歡迎大家留言讨論。
open failed: EACCES (Permission denied)
根據報錯資訊可知是因為權限錯誤導緻,解決辦法有以下幾種:
1.在AndroidMainfest.xml中添加上<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAG”/>權限;
2.如果還不行的時候可以試着在AndroidMainfest.xml中添加<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> 權限;
3.注意AndroidMainfest.xml檔案中權限的書寫位置:應該和<application>标簽節點同一級,而不要寫到<application>标簽中,這樣權限是不會生效的;
4.還有一種異常是我在查資料的時候發現的,有的手機在以磁盤模式連接配接電腦的時候,手機會暫時失去對sdcard/外存的讀寫權限,這時打開手機app就會發生這個權限異常的IOException。
open failed: EISDIR (Is a directory)
這個異常表明程式應該是對一個檔案進行操作,而你傳入程式的是一個檔案夾對象。
java.ioException:No such file or directory
表明程式指定讀寫的檔案不存在,或者對該目錄和檔案沒有讀寫權限,例如:app有自己的/data/data/packagename/下目錄和檔案的讀寫權限,而對其它包下的目錄和檔案是沒有讀寫權限的,除非你的app擷取了root權限。