Android: runtime-error «Невозможно создать каталог», при использовании класса DownloadManager, метод setDestinationInExternalPublicDir

Я получаю это исключение:

10-24 17:08:19.711: E/AndroidRuntime(1379): FATAL EXCEPTION: main 10-24 17:08:19.711: E/AndroidRuntime(1379): java.lang.RuntimeException: Unable to start activity ComponentInfo{br.com.campusfqm.cfqm/br.com.campusfqm.cfqm.DownloadManagerActivity}: java.lang.IllegalStateException: Unable to create directory: /mnt/sdcard/Download 10-24 17:08:19.711: E/AndroidRuntime(1379): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1736) 10-24 17:08:19.711: E/AndroidRuntime(1379): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1752) 10-24 17:08:19.711: E/AndroidRuntime(1379): at android.app.ActivityThread.access$1500(ActivityThread.java:123) 10-24 17:08:19.711: E/AndroidRuntime(1379): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:993) 10-24 17:08:19.711: E/AndroidRuntime(1379): at android.os.Handler.dispatchMessage(Handler.java:99) 10-24 17:08:19.711: E/AndroidRuntime(1379): at android.os.Looper.loop(Looper.java:126) 10-24 17:08:19.711: E/AndroidRuntime(1379): at android.app.ActivityThread.main(ActivityThread.java:3997) 10-24 17:08:19.711: E/AndroidRuntime(1379): at java.lang.reflect.Method.invokeNative(Native Method) 10-24 17:08:19.711: E/AndroidRuntime(1379): at java.lang.reflect.Method.invoke(Method.java:491) 10-24 17:08:19.711: E/AndroidRuntime(1379): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 10-24 17:08:19.711: E/AndroidRuntime(1379): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 10-24 17:08:19.711: E/AndroidRuntime(1379): at dalvik.system.NativeStart.main(Native Method) 10-24 17:08:19.711: E/AndroidRuntime(1379): Caused by: java.lang.IllegalStateException: Unable to create directory: /mnt/sdcard/Download 10-24 17:08:19.711: E/AndroidRuntime(1379): at android.app.DownloadManager$Request.setDestinationInExternalPublicDir(DownloadManager.java:466) 10-24 17:08:19.711: E/AndroidRuntime(1379): at br.com.campusfqm.cfqm.DownloadManagerActivity.download(DownloadManagerActivity.java:51) 10-24 17:08:19.711: E/AndroidRuntime(1379): at br.com.campusfqm.cfqm.DownloadManagerActivity.onCreate(DownloadManagerActivity.java:43) 10-24 17:08:19.711: E/AndroidRuntime(1379): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048) 10-24 17:08:19.711: E/AndroidRuntime(1379): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1700) 10-24 17:08:19.711: E/AndroidRuntime(1379): ... 11 more 

Используя класс DownloadManager, с помощью этого кода:

 DownloadManager.Request request = new DownloadManager.Request(Uri.parse("http://centraldemangas.com.br/forum/dbtech/vbshop/images/gifts/pidgey.gif")); request.setAllowedNetworkTypes(Request.NETWORK_MOBILE | Request.NETWORK_WIFI); request.setAllowedOverRoaming(false); request.setTitle("pidgey.gif"); request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,"pid.gif"); id = downloadManager.enqueue(request); 

Исключение указывает на request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,"pid.gif");

Проблема в

Не удалось создать каталог: / mnt / sdcard / Загрузить

Попробуй это:

 String name = Environment.getExternalStorageDirectory().getAbsolutePath(); name += "/YourDirectoryName/" ; 

У вас есть соответствующие разрешения в вашем манифесте?

См. Разрешения WRITE_EXTERNAL_STORAGE и READ_EXTERNAL_STORAGE

Я думаю, что вы не дали размер sd-карты, когда вы собрали эмулятор.