Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
yol
10 / 10 / 0
Регистрация: 13.10.2012
Сообщений: 155
#1

Ошибка при добавлении файла в очередь загрузки (android.app.DownloadManager) - Программирование Android

12.05.2014, 17:12. Просмотров 1082. Ответов 6
Метки нет (Все метки)

Пытаюсь загрузить файл с сервера, таким способом:
Java
1
2
3
4
5
6
7
8
9
public void download(Context context, String url)
    {
        String service=Context.DOWNLOAD_SERVICE;
        DownloadManager dm;
        dm=(DownloadManager) context.getSystemService(service);
        Uri uri=Uri.parse(url);
        DownloadManager.Request request=new Request(uri);
        Long reference=dm.enqueue(request);
    }
Реализация находится в отдельном классе (не в MainActivity.java).
Решил выявить источник ошибки (использовал вывод логов); на этапе добавления в очередь (dm.enqueue()) возникает ошибка (в AVD: "the application has stopped unexpectedly"). В чем может быть дело?

Добавлено через 13 минут
Вообще говоря, когда-где... Теперь возникает ошибка на этапе создания request'а.

Java
1
2
3
4
5
6
7
8
9
public void download2(Context context, String url)
    {
        String service=Context.DOWNLOAD_SERVICE;                    Log.d("LOG", "*Step1*");
        DownloadManager dm;                                         Log.d("LOG", "*Step2*");
        dm=(DownloadManager) context.getSystemService(service);     Log.d("LOG", "*Step3*");
        Uri uri=Uri.parse(url);                                     Log.d("LOG", "*Step4*");
        DownloadManager.Request request=new Request(uri);           Log.d("LOG", "*Step5*");
        Long reference=dm.enqueue(request);                         Log.d("LOG", "*Step6*");
    }
Тут лог:
Кликните здесь для просмотра всего текста
05-12 13:09:30.725: D/LOG(463): *Step1*
05-12 13:09:30.725: D/LOG(463): *Step2*
05-12 13:09:30.735: D/LOG(463): *Step3*
05-12 13:09:30.735: D/LOG(463): *Step4*
05-12 13:09:30.735: D/AndroidRuntime(463): Shutting down VM
05-12 13:09:30.735: W/dalvikvm(463): threadid=1: thread exiting with uncaught exception (group=0x40015560)
05-12 13:09:30.745: E/AndroidRuntime(463): FATAL EXCEPTION: main
05-12 13:09:30.745: E/AndroidRuntime(463): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.timetableetu/com.example.timetableetu.MainActivity}: java.lang.IllegalArgumentException: Can only download HTTP URIs: https://timetable-etu.googlecode.com/svn/trunk/data/sources.xls
05-12 13:09:30.745: E/AndroidRuntime(463): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
05-12 13:09:30.745: E/AndroidRuntime(463): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
05-12 13:09:30.745: E/AndroidRuntime(463): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
05-12 13:09:30.745: E/AndroidRuntime(463): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
05-12 13:09:30.745: E/AndroidRuntime(463): at android.os.Handler.dispatchMessage(Handler.java:99)
05-12 13:09:30.745: E/AndroidRuntime(463): at android.os.Looper.loop(Looper.java:123)
05-12 13:09:30.745: E/AndroidRuntime(463): at android.app.ActivityThread.main(ActivityThread.java:3683)
05-12 13:09:30.745: E/AndroidRuntime(463): at java.lang.reflect.Method.invokeNative(Native Method)
05-12 13:09:30.745: E/AndroidRuntime(463): at java.lang.reflect.Method.invoke(Method.java:507)
05-12 13:09:30.745: E/AndroidRuntime(463): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
05-12 13:09:30.745: E/AndroidRuntime(463): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
05-12 13:09:30.745: E/AndroidRuntime(463): at dalvik.system.NativeStart.main(Native Method)
05-12 13:09:30.745: E/AndroidRuntime(463): Caused by: java.lang.IllegalArgumentException: Can only download HTTP URIs: https://timetable-etu.googlecode.com/svn/trunk/data/sources.xls
05-12 13:09:30.745: E/AndroidRuntime(463): at android.app.DownloadManager$Request.<init>(DownloadManager.java:349)
05-12 13:09:30.745: E/AndroidRuntime(463): at com.example.timetableetu.DownloadFile.download2(DownloadFile.java:52)
05-12 13:09:30.745: E/AndroidRuntime(463): at com.example.timetableetu.MainActivity.onCreate(MainActivity.java:43)
05-12 13:09:30.745: E/AndroidRuntime(463): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-12 13:09:30.745: E/AndroidRuntime(463): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
05-12 13:09:30.745: E/AndroidRuntime(463): ... 11 more
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2014, 17:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка при добавлении файла в очередь загрузки (android.app.DownloadManager) (Программирование Android):

Ошибка: Caused by Android java.lang.ClassCastException: android.app.Application cannot be cast - Программирование Android
Здравствуйте. Очень нужен ваш совет. При запуске приложения появляется ошибка: Caused by: java.lang.ClassCastException:...

Android.support.v4.app.FragmentActivity не работает в Android Studio - Программирование Android
объясните пожалуйста,как в андроид студио добавить вышеуказанную библиотеку,чтобы работало у меня вот это Активити package...

android Calendar app - Программирование Android
Скачал исходники android Calendar app. Импортировал в Эклипс, но не находит кучу пакетов для построения ...

Ошибка Gradle при добавлении Espresso - Программирование Android
Проблема с добавлением библиотеки Espresso как зависимость при помощи Gradle. build.gradle корневой // Top-level build file where...

Ошибка при добавлении данных в список - Программирование Android
Здравствуйте, такой вопрос, у меня список и собственный адаптер, в адаптере размер списка указан от количества элементов в списке String...

Ошибка при добавлении в базу данных - Программирование Android
Здравствуйте! Я раньше не работал с бд, это мое первое приложение, делал опираясь на урок... Вот такой код в итоге получился: package...

6
Netscape
374 / 361 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
12.05.2014, 18:04 #2
Can only download HTTP URIs
С https не загрузит.
0
yol
10 / 10 / 0
Регистрация: 13.10.2012
Сообщений: 155
12.05.2014, 18:21  [ТС] #3
Цитата Сообщение от Netscape Посмотреть сообщение
Can only download HTTP URIs
С https не загрузит.
Заменил на http. Теперь следующее:
Кликните здесь для просмотра всего текста
05-12 14:20:03.102: D/LOG(363): *Step1*
05-12 14:20:03.102: D/LOG(363): *Step2*
05-12 14:20:03.102: D/LOG(363): *Step3*
05-12 14:20:03.102: D/LOG(363): *Step4*
05-12 14:20:03.102: D/LOG(363): *Step5*
05-12 14:20:03.112: D/AndroidRuntime(363): Shutting down VM
05-12 14:20:03.112: W/dalvikvm(363): threadid=1: thread exiting with uncaught exception (group=0x40015560)
05-12 14:20:03.132: E/AndroidRuntime(363): FATAL EXCEPTION: main
05-12 14:20:03.132: E/AndroidRuntime(363): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.timetableetu/com.example.timetableetu.MainActivity}: java.lang.SecurityException: Permission Denial: opening provider com.android.providers.downloads.DownloadProvider from ProcessRecord{407a2860 363:com.example.timetableetu/10050} (pid=363, uid=10050) requires android.permission.ACCESS_ALL_DOWNLOADS or android.permission.ACCESS_ALL_DOWNLOADS
05-12 14:20:03.132: E/AndroidRuntime(363): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
05-12 14:20:03.132: E/AndroidRuntime(363): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
05-12 14:20:03.132: E/AndroidRuntime(363): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
05-12 14:20:03.132: E/AndroidRuntime(363): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
05-12 14:20:03.132: E/AndroidRuntime(363): at android.os.Handler.dispatchMessage(Handler.java:99)
05-12 14:20:03.132: E/AndroidRuntime(363): at android.os.Looper.loop(Looper.java:123)
05-12 14:20:03.132: E/AndroidRuntime(363): at android.app.ActivityThread.main(ActivityThread.java:3683)
05-12 14:20:03.132: E/AndroidRuntime(363): at java.lang.reflect.Method.invokeNative(Native Method)
05-12 14:20:03.132: E/AndroidRuntime(363): at java.lang.reflect.Method.invoke(Method.java:507)
05-12 14:20:03.132: E/AndroidRuntime(363): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
05-12 14:20:03.132: E/AndroidRuntime(363): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
05-12 14:20:03.132: E/AndroidRuntime(363): at dalvik.system.NativeStart.main(Native Method)
05-12 14:20:03.132: E/AndroidRuntime(363): Caused by: java.lang.SecurityException: Permission Denial: opening provider com.android.providers.downloads.DownloadProvider from ProcessRecord{407a2860 363:com.example.timetableetu/10050} (pid=363, uid=10050) requires android.permission.ACCESS_ALL_DOWNLOADS or android.permission.ACCESS_ALL_DOWNLOADS
05-12 14:20:03.132: E/AndroidRuntime(363): at android.os.Parcel.readException(Parcel.java:1322)
05-12 14:20:03.132: E/AndroidRuntime(363): at android.os.Parcel.readException(Parcel.java:1276)
05-12 14:20:03.132: E/AndroidRuntime(363): at android.app.ActivityManagerProxy.getContentProvider(ActivityManagerNative.java:1882)
05-12 14:20:03.132: E/AndroidRuntime(363): at android.app.ActivityThread.getProvider(ActivityThread.java:3347)
05-12 14:20:03.132: E/AndroidRuntime(363): at android.app.ActivityThread.acquireProvider(ActivityThread.java:3372)
05-12 14:20:03.132: E/AndroidRuntime(363): at android.app.ContextImpl$ApplicationContentResolver.acquireProvider(ContextImpl.java:1648)
05-12 14:20:03.132: E/AndroidRuntime(363): at android.content.ContentResolver.acquireProvider(ContentResolver.java:748)
05-12 14:20:03.132: E/AndroidRuntime(363): at android.content.ContentResolver.insert(ContentResolver.java:598)
05-12 14:20:03.132: E/AndroidRuntime(363): at android.app.DownloadManager.enqueue(DownloadManager.java:750)
05-12 14:20:03.132: E/AndroidRuntime(363): at com.example.timetableetu.DownloadFile.download2(DownloadFile.java:53)
05-12 14:20:03.132: E/AndroidRuntime(363): at com.example.timetableetu.MainActivity.onCreate(MainActivity.java:43)
05-12 14:20:03.132: E/AndroidRuntime(363): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-12 14:20:03.132: E/AndroidRuntime(363): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
05-12 14:20:03.132: E/AndroidRuntime(363): ... 11 more
0
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
12.05.2014, 18:51 #4
yol, в манифест добавьте пермишн android.permission.ACCESS_ALL_DOWNLOADS
1
Netscape
374 / 361 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
12.05.2014, 18:54 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Манифест покажите.
Там должны быть пермишены:
XML
1
2
<uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
1
yol
10 / 10 / 0
Регистрация: 13.10.2012
Сообщений: 155
12.05.2014, 19:17  [ТС] #6
Цитата Сообщение от Netscape Посмотреть сообщение
Манифест покажите.
Там должны быть пермишены:
Код XML
1
2
<uses-permission android:name="android.permission.INTERNET" />
* <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Спасибо, заработало. Странно почему ни где не описывается, что следует заполнить манифест? И на будущее, где об этом можно узнать?
0
Netscape
374 / 361 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
12.05.2014, 19:45 #7
Цитата Сообщение от yol Посмотреть сообщение
И на будущее, где об этом можно узнать?
Ну оно как-то с опытом приходит.
Или просто рассуждать логически:
собираемся что-то качать с интернета? ставь пермишн.
нужно что-то записать на флешку? ставь пермишн.

обычно в логах пишется, что нужно установить, но это не тот случай, потому что DownloadManager как-то коряво написан.
1
12.05.2014, 19:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.05.2014, 19:45
Привет! Вот еще темы с ответами:

Ошибка при загрузки изображений с карты памяти при повороте экрана - Программирование Android
Здравствуйте! Вопрос в следующем. Загружаю в активити фотки с камеры. Имя файла передаю следующим кодом: Intent captureIntent = new...

Клиент -android, сервер -java app - Программирование Android
Здравствуйте, помогите пожалуйста! Есть Клиент под андроид и сервер на java на pc - когда запускаешь с эмулятора - все работает - сообщения...

Не удалось найти класс android.app.AppOpsManager - Программирование Android
У меня в логе такая ошибка что это значить и как решить? Could not find class 'android.app.AppOpsManager', referenced from method...

Как сделать программну оболочку для app Android? - Программирование Android
т.е. как сделать программку что бы она нажимала на кнопочки в работающем приложении? Подскажите pls!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.