内容简介:翻译自:https://stackoverflow.com/questions/34942269/downloadmanager-illegalstateexception-creating-a-download-in-directory-downloads
.
我遇到的问题是,在极少数情况下,我的setDestinationInExternalPublicDir函数会产生以下堆栈跟踪:
Fatal Exception: java.lang.RuntimeException: Unable to start receiver com.onlinetvrecorder.otrapp2.listeners.DownloadUpdateReceiver: java.lang.IllegalStateException: Unable to create directory: /mnt/sdcard/Download at android.app.ActivityThread.handleReceiver(ActivityThread.java:2274) at android.app.ActivityThread.access$1500(ActivityThread.java:131) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1272) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4791) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at dalvik.system.NativeStart.main(NativeStart.java) Caused by java.lang.IllegalStateException: Unable to create directory: /mnt/sdcard/Download at android.app.DownloadManager$Request.setDestinationInExternalPublicDir(DownloadManager.java:496) at com.myapp.Utils.download(SourceFile:752) at com.myapp.Receiver.onReceive(SourceFile:20) at android.app.ActivityThread.handleReceiver(ActivityThread.java:2267) at android.app.ActivityThread.access$1500(ActivityThread.java:131) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1272) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4791) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at dalvik.system.NativeStart.main(NativeStart.java)
我使用标准的环境常量告诉DownloadManager保存文件的位置.
android.app.DownloadManager dm = (android.app.DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE); DownloadManager.Request request = new DownloadManager.Request(Uri.parse("url.to.file.ext")); request.setMimeType("mime/type"); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { Utils.setDownloadRequestVisibility(request, android.app.DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); } request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "file.ext"); request.setTitle(context.getString(R.string.download)); dm.enqueue(request);
如前所述,甚至可能有1%的用户没有收到此错误.可能是什么原因造成的?
在写我的问题的过程中,我注意到我可能刚刚解决了这个问题.我打算写一些有问题的设备模型,但在Crashlytics上显示的是“Unknown”.我点击了这一点,并揭示了以下模型:GI I9500 TMMARS.运行Android 4.
TMMARS似乎是 Trend Micro 的软件.
Trend Micro Mobile App Reputation Service or TMMARS is a cloud-based service that automatically identifies mobile threats based on app behaviors.
系统很可能不像App期望的那样,仅仅因为它是一个威胁检测环境.
崩溃报告示例:
翻译自:https://stackoverflow.com/questions/34942269/downloadmanager-illegalstateexception-creating-a-download-in-directory-downloads
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Android原生下载(下篇)多文件下载+多线程下载
- 小说下载器 ebookdownloader v1.7.5 发布:添加新下载源
- 前端培训-初级阶段-场景实战(2019-06-06)-下载文件&下载进度
- Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用)
- PHP 下载远程图片
- windows 下载 grpc
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
30天自制操作系统
[日] 川合秀实 / 周自恒、李黎明、曾祥江、张文旭 / 人民邮电出版社 / 2012-8 / 99.00元
自己编写一个操作系统,是许多程序员的梦想。也许有人曾经挑战过,但因为太难而放弃了。其实你错了,你的失败并不是因为编写操作系统太难,而是因为没有人告诉你那其实是一件很简单的事。那么,你想不想再挑战一次呢? 这是一本兼具趣味性、实用性与学习性的书籍。作者从计算机的构造、汇编语言、C语言开始解说,让你在实践中掌握算法。在这本书的指导下,从零编写所有代码,30天后就可以制作出一个具有窗口系统的32位......一起来看看 《30天自制操作系统》 这本书的介绍吧!