2012-10-24 10 views
5

sto ottenendo questa eccezione:Android: runtime errore 'Impossibile creare la directory', sull'uso della classe DownloadManager, metodo 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 

Utilizzando la DownloadManager di classe, con questo codice:

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); 

L'eccezione è rivolto a request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,"pid.gif");

risposta

6

Il problema è in

Impossibile creare la directory:/mnt/sdcard/Scarica

Prova questa:

String name = Environment.getExternalStorageDirectory().getAbsolutePath(); 

name += "/YourDirectoryName/" ; 
2

avete delle autorizzazioni appropriate nel vostro manifesto?

Vedi WRITE_EXTERNAL_STORAGE e READ_EXTERNAL_STORAGE permessi

+1

Sì, ce l'ho. Lo sto eseguendo in una macchina virtuale, questo fa la differenza? – MaiaVictor

+0

Ha montato una sdcard (controlla/mnt/sdcard)? –

2

Penso che tu non abbia dato una dimensione della scheda SD quando hai creato l'emulatore.

Problemi correlati