gpt4 book ai didi

java.lang.IllegalStateException : Unable to create directory:/mnt/sdcard/Download 错误

转载 作者:行者123 更新时间:2023-11-29 09:29:53 28 4
gpt4 key购买 nike

我最近在 Developer Console 上看到我的应用发生以下崩溃:

java.lang.RuntimeException: Unable to start activity ComponentInfo{}: java.lang.IllegalStateException: Unable to create directory: /mnt/sdcard/Download
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
at android.app.ActivityThread.access$600(ActivityThread.java:123)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:812)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:579)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalStateException: Unable to create directory: /mnt/sdcard/Download
at android.app.DownloadManager$Request.setDestinationInExternalPublicDir(DownloadManager.java:492)
at com...BrowserIntent.a(Unknown Source)
at com...BrowserIntent.onCreate(Unknown Source)
at android.app.Activity.performCreate(Activity.java:4465)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
... 11 more

对应的代码如下:

final Intent intent = getIntent();
final List<String> segments = intent.getData().getPathSegments();
String url = intent.getDataString();
if (!url.startsWith("https://") && !url.startsWith("http://")){
url = "http://" + url;
}
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, segments.get(segments.size()-1));

这是我的 list 的一部分:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package=""
android:versionCode="10"
android:versionName="1.9" >

<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="19" />

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

<application
android:allowBackup="true"
android:icon="@drawable/ad_icon"
android:label="@string/app_name"
android:theme="@android:style/Theme.Holo.NoActionBar" >

有人知道是什么原因造成的吗?

最佳答案

尝试重新启动您的设备。这似乎是一个愚蠢的解决方案,但它在我的 nexus 设备中的应用程序中解决了这个问题。

我之前测试我的应用程序时发生的事情是,它正在工作/下载文件然后我将其删除然后重新下载它几次,然后突然它会崩溃并抛出这个错误说无法创建目录,但已经创建/使用它了。

这就是我在代码中使用它的方式

public static String downloadPath = "/My-Folder-Name";
File fileDir = new File(downloadPath);

if (fileDir.isDirectory()) {
request.setDestinationInExternalPublicDir(downloadPath, filename);
} else {
fileDir.mkdirs();
request.setDestinationInExternalPublicDir(downloadPath, filename);
}

我不确定这个错误是否是因为设备的 SSD 存储出现故障,这就是为什么当我重新启动设备时它再次工作,然后在多次下载后或设备没有时再次抛出错误重新启动了一段时间。

关于java.lang.IllegalStateException : Unable to create directory:/mnt/sdcard/Download 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23325250/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com