2016-01-04 4 views
1

Я выполняю этот учебник здесь: TUTНевозможно декодировать поток: java.io.FileNotFoundException

репетит о загрузке изображения через URL и показывает прогресс бар.

Я использовал весь код, который находится в учебнике, по строкам. Но по какой-то причине я получаю эту ошибку во время загрузки изображения.

E/Error:﹕ /sdcard/downloadedfile.jpg: open failed: EACCES (Permission denied) 

Unable to decode stream: java.io.FileNotFoundException: /storage/sdcard/downloadedfile.jpg: open failed: EACCES (Permission denied) 

Я добавил persmissons в файл манифеста. Поэтому я не понимаю, почему он показывает Permission denied

+4

'' –

+0

Вы добавили эту строку в файл манифеста?

+0

Да, у меня уже была эта строка в манифесте. Все еще не работает. – user5741750

ответ

0

Пожалуйста, не делайте hardcord «/ sdcard /», представляя Путь. Это может измениться в зависимости от производителя. Для безопасности необходимо использовать,

Environment.getExternalStorageDirectory().getAbsolutePath() 

Например,

Вы можете использовать его следующим образом,

String storageDir = Environment.getExternalStorageDirectory().getAbsolutePath(); 
String fileName = "downloadedfile.jpg"; 
File imageFile= new File(storageDir+fileName); 
OutputStream output = new FileOutputStream(imageFile); 

DonT Также забудьте добавить разрешение писать внешний каталог хранения в манифесте,

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
+0

Где я должен положить этот новый код? «Enviroment» и строки, файл, выходной поток? – user5741750

+0

Заменить OutputStream output = new FileOutputStream ("/ sdcard/loadedfile.jpg"); с четырьмя строками, упомянутыми выше. – Sujith

0

Это ошибка разрешения, вызванная не добавлением требуемого разрешения на запись данных на exter хранения.

E/Error:﹕ /sdcard/downloadedfile.jpg: open failed: EACCES (Permission denied) 

Вы можете добавить

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

В манифесте, чтобы избежать такой ошибки.

Смежные вопросы