无法创建外部文件目录 - ANDROID

时间:2012-12-06 02:57:58

标签: android file

这是我的代码和下面的错误。我在日志中收到错误,指出无法创建外部文件目录。

String downloadURL = getString(R.string.download_URL);
Uri uri = Uri.parse(downloadURL);
DownloadManager.Request request = new Request(uri);
request.setAllowedNetworkTypes(Request.NETWORK_WIFI | Request.NETWORK_MOBILE);
request.setAllowedOverRoaming(false);
request.setTitle("Android Jelly Bean's Pic Download");
request.setDescription("Android Jelly Beans Pic Download using Download Manager");
request.setDestinationInExternalFilesDir(getApplicationContext(),    
Environment.DIRECTORY_DOWNLOADS, "abc.png");
downloadReference = dm.enqueue(request);

有错误的行是     request.setDestinationInExternalFilesDir(getApplicationContext(),
    Environment.DIRECTORY_DOWNLOADS,“abc.png”);

12-05 18:51:55.436: W/ApplicationContext(1049): Unable to create external files directory
12-05 18:51:55.436: D/AndroidRuntime(1049): Shutting down VM
12-05 18:51:55.446: W/dalvikvm(1049): threadid=1: thread exiting with uncaught exception (group=0x409961f8)
12-05 18:51:55.476: E/AndroidRuntime(1049): FATAL EXCEPTION: main
12-05 18:51:55.476: E/AndroidRuntime(1049): java.lang.NullPointerException: file
12-05 18:51:55.476: E/AndroidRuntime(1049):     at android.net.Uri.fromFile(Uri.java:441)
12-05 18:51:55.476: E/AndroidRuntime(1049):     at android.app.DownloadManager$Request.setDestinationFromBase(DownloadManager.java:504)
12-05 18:51:55.476: E/AndroidRuntime(1049):     at android.app.DownloadManager$Request.setDestinationInExternalFilesDir(DownloadManager.java:466)
12-05 18:51:55.476: E/AndroidRuntime(1049):     at com.example.downloadmanagerapplication.DownloadManagerActivity.startDownload(DownloadManagerActivity.java:93)
12-05 18:51:55.476: E/AndroidRuntime(1049):     at com.example.downloadmanagerapplication.DownloadManagerActivity$1.onClick(DownloadManagerActivity.java:115)
12-05 18:51:55.476: E/AndroidRuntime(1049):     at android.view.View.performClick(View.java:3480)
12-05 18:51:55.476: E/AndroidRuntime(1049):     at android.view.View$PerformClick.run(View.java:13983)
12-05 18:51:55.476: E/AndroidRuntime(1049):     at android.os.Handler.handleCallback(Handler.java:605)
12-05 18:51:55.476: E/AndroidRuntime(1049):     at android.os.Handler.dispatchMessage(Handler.java:92)
12-05 18:51:55.476: E/AndroidRuntime(1049):     at android.os.Looper.loop(Looper.java:137)
12-05 18:51:55.476: E/AndroidRuntime(1049):     at android.app.ActivityThread.main(ActivityThread.java:4340)
12-05 18:51:55.476: E/AndroidRuntime(1049):     at java.lang.reflect.Method.invokeNative(Native Method)
12-05 18:51:55.476: E/AndroidRuntime(1049):     at java.lang.reflect.Method.invoke(Method.java:511)
12-05 18:51:55.476: E/AndroidRuntime(1049):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
12-05 18:51:55.476: E/AndroidRuntime(1049):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
12-05 18:51:55.476: E/AndroidRuntime(1049):     at dalvik.system.NativeStart.main(Native Method)

2 个答案:

答案 0 :(得分:11)

为了将数据保存/写入文件或创建/删除目录,您必须设置" usage" manifest文件中的权限。

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

示例:Android DownloadManager

答案 1 :(得分:0)

你可以尝试类似的东西:

A

而不是:

dotnet msbuild