Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
1inkin1
0 / 0 / 1
Регистрация: 13.03.2014
Сообщений: 182
1

Ошибка Unfortunately, App has stopped при понижении версии Android

29.01.2018, 23:21. Просмотров 1015. Ответов 10
Метки нет (Все метки)

Делал приложение изначально на эмуляторе API 27 с Android 7, всё работало нормально, потом начал тестировать другие версии и дойдя до API 22 с Android 5.1 приложение начало падать при загрузке с ошибкой на экране эмулятора "Unfortunately, App has stopped" и в логе:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.example.a002, PID: 2988
                  java.lang.NoClassDefFoundError: Failed resolution of: Landroid/icu/util/Calendar;
                      at com.example.a002.MainActivity.onCreate(MainActivity.java:129)
                      at android.app.Activity.performCreate(Activity.java:5990)
                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
                      at android.app.ActivityThread.access$800(ActivityThread.java:151)
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
                      at android.os.Handler.dispatchMessage(Handler.java:102)
                      at android.os.Looper.loop(Looper.java:135)
                      at android.app.ActivityThread.main(ActivityThread.java:5254)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at java.lang.reflect.Method.invoke(Method.java:372)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
                   Caused by: java.lang.ClassNotFoundException: Didn't find class "android.icu.util.Calendar" on path: DexPathList[[zip file "/data/app/com.example.a002-2/base.apk", zip file "/data/app/com.example.a002-2/split_lib_dependencies_apk.apk", zip file "/data/app/com.example.a002-2/split_lib_slice_0_apk.apk", zip file "/data/app/com.example.a002-2/split_lib_slice_1_apk.apk", zip file "/data/app/com.example.a002-2/split_lib_slice_2_apk.apk", zip file "/data/app/com.example.a002-2/split_lib_slice_3_apk.apk", zip file "/data/app/com.example.a002-2/split_lib_slice_4_apk.apk", zip file "/data/app/com.example.a002-2/split_lib_slice_5_apk.apk", zip file "/data/app/com.example.a002-2/split_lib_slice_6_apk.apk", zip file "/data/app/com.example.a002-2/split_lib_slice_7_apk.apk", zip file "/data/app/com.example.a002-2/split_lib_slice_8_apk.apk", zip file "/data/app/com.example.a002-2/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
                      at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
                      at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
                      at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
                      at com.example.a002.MainActivity.onCreate(MainActivity.java:129)*
                      at android.app.Activity.performCreate(Activity.java:5990)*
                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)*
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)*
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)*
                      at android.app.ActivityThread.access$800(ActivityThread.java:151)*
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)*
                      at android.os.Handler.dispatchMessage(Handler.java:102)*
                      at android.os.Looper.loop(Looper.java:135)*
                      at android.app.ActivityThread.main(ActivityThread.java:5254)*
                      at java.lang.reflect.Method.invoke(Native Method)*
                      at java.lang.reflect.Method.invoke(Method.java:372)*
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)*
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)*
                    Suppressed: java.lang.ClassNotFoundException: android.icu.util.Calendar
                      at java.lang.Class.classForName(Native Method)
                      at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
                      at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
                      at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
                            ... 15 more
                   Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
в коде на строке MainActivity.java:129:
Java
1
Calendar calendar = Calendar.getInstance();
getInstance подчеркнут красным и в подсказке говорит, что текущий минимальный API 15, значит вроде бы должно работать. в чем проблема?
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2018, 23:21
Ответы с готовыми решениями:

Когда жму Назад выскакивает ошибка Unfortunately <my app> has stopped
Здравствуйте! Пишу игру под андроид. Все работает хорошо за исключением одного...

Ошибка при добавлении файла в очередь загрузки (android.app.DownloadManager)
Пытаюсь загрузить файл с сервера, таким способом: public void download(Context...

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

Часы для Android и ошибка "unfortunately clock has stopped"
Задали лабораторную по создания приложения часов для андроид. По скольку ни с...

unfortunately has stopped android
Я не могу интегрировать карты в Android приложения, действовал по сайту...

10
VASSUV
MiThEoN
443 / 307 / 35
Регистрация: 31.10.2009
Сообщений: 505
Записей в блоге: 2
Завершенные тесты: 1
30.01.2018, 06:47 2
Лучший ответ Сообщение было отмечено 1inkin1 как решение

Решение

Не используйте android.icu.util.Calendar
Есть java.util.Calendar
1
1inkin1
0 / 0 / 1
Регистрация: 13.03.2014
Сообщений: 182
30.01.2018, 22:37  [ТС] 3
да, помогло, но дальше он еще выдает ошибку
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.example.a002, PID: 3435
                  java.lang.NoSuchMethodError: No virtual method getHour()I in class Landroid/widget/TimePicker; or its super classes (declaration of 'android.widget.TimePicker' appears in /system/framework/framework.jar:classes2.dex)
                      at com.example.a002.AlarmActivity$2.onClick(AlarmActivity.java:81)
                      at android.view.View.performClick(View.java:4780)
                      at android.view.View$PerformClick.run(View.java:19866)
                      at android.os.Handler.handleCallback(Handler.java:739)
                      at android.os.Handler.dispatchMessage(Handler.java:95)
                      at android.os.Looper.loop(Looper.java:135)
                      at android.app.ActivityThread.main(ActivityThread.java:5254)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at java.lang.reflect.Method.invoke(Method.java:372)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
там TimePicker tpTIME.getHour() и tpTIME.getMinute(). тоже подчеркнуты красным и в подсказке написано то же самое, что было для calendar. их можно на что-то заменить?
0
VASSUV
MiThEoN
443 / 307 / 35
Регистрация: 31.10.2009
Сообщений: 505
Записей в блоге: 2
Завершенные тесты: 1
31.01.2018, 05:44 4
getHour не был еще изобретен до 23 API
зато был другой метод

Java
1
2
3
4
5
6
        int hour;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            hour = picker.getHour();
        } else {
            hour = picker.getCurrentHour();
        }
1
1inkin1
0 / 0 / 1
Регистрация: 13.03.2014
Сообщений: 182
31.01.2018, 21:59  [ТС] 5
похоже, надо все SDK выше 15 удалить, чтобы он всё, что ему не нравится сразу пометил как ошибки. а то я так долго, наверное, буду выявлять их по одной. Теперь он мне на Ringtone ring.play() ругнулся
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
E/AndroidRuntime: FATAL EXCEPTION: main
                  java.lang.NullPointerException
                      at com.example.a002.MainActivity.ring(MainActivity.java:968)
                      at com.example.a002.MainActivity.Countdown(MainActivity.java:863)
                      at com.example.a002.MainActivity.CheckSys(MainActivity.java:722)
                      at com.example.a002.MainActivity.onNewIntent(MainActivity.java:370)
                      at android.app.Instrumentation.callActivityOnNewIntent(Instrumentation.java:1154)
                      at android.app.ActivityThread.deliverNewIntents(ActivityThread.java:2299)
                      at android.app.ActivityThread.performNewIntents(ActivityThread.java:2312)
                      at android.app.ActivityThread.handleNewIntent(ActivityThread.java:2321)
                      at android.app.ActivityThread.access$1400(ActivityThread.java:141)
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1305)
                      at android.os.Handler.dispatchMessage(Handler.java:99)
                      at android.os.Looper.loop(Looper.java:137)
                      at android.app.ActivityThread.main(ActivityThread.java:5041)
                      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:793)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
                      at dalvik.system.NativeStart.main(Native Method)
0
VASSUV
MiThEoN
443 / 307 / 35
Регистрация: 31.10.2009
Сообщений: 505
Записей в блоге: 2
Завершенные тесты: 1
31.01.2018, 22:04 6
NullpointerException говорит что у вас в той строке где у какого-то объекта вызывается метод, не может быть вызван метод. Т.к. сам объект равен null
Разбирайтесь почему он null
1
1inkin1
0 / 0 / 1
Регистрация: 13.03.2014
Сообщений: 182
31.01.2018, 23:55  [ТС] 7
странно, там стоит условие
Java
1
2
3
if (ring != null) {
                    ring.play();
                }
буду разбираться. на API 27 работает
0
VASSUV
MiThEoN
443 / 307 / 35
Регистрация: 31.10.2009
Сообщений: 505
Записей в блоге: 2
Завершенные тесты: 1
01.02.2018, 00:07 8
Что за ring? Посмотрите где используется, что использует, и с какого api работает. Может быть и сами разберетесь
1
1inkin1
0 / 0 / 1
Регистрация: 13.03.2014
Сообщений: 182
01.02.2018, 22:35  [ТС] 9
Снова здравствуйте в общем, эта ошибка из-за того, что я нажимаю отключить мелодию, а она не была включена. при включении у меня была проверка null, а при выключении нет.
мелодия включается:
Java
1
2
3
4
5
Uri ringURI = RingtoneManager.getActualDefaultRingtoneUri(MainActivity.this, RingtoneManager.TYPE_ALARM);
        Ringtone ring = RingtoneManager.getRingtone(MainActivity.this, ringURI);
if (ring != null) {
                    ring.play();
                }
соответственно, с API 15 она не включается, а имеет значение null. Ringtone пробовал заменить на MediaPlayer, но результат тот же.

Добавлено через 1 час 45 минут
да уж, всё оказалось куда прозаичнее, чем я думал. почему-то на эмуляторе не оказалось мелодий звонка...
0
VASSUV
MiThEoN
443 / 307 / 35
Регистрация: 31.10.2009
Сообщений: 505
Записей в блоге: 2
Завершенные тесты: 1
01.02.2018, 22:36 10
14 API можно пожертвовать, я не думаю что кто то еще пользуется андроидом 4.0
1
1inkin1
0 / 0 / 1
Регистрация: 13.03.2014
Сообщений: 182
01.02.2018, 22:54  [ТС] 11
14 я и не рассматривал. статистику видел, что android 4.0.3 с API 15 поддерживают 100% устройств. вроде бы с ошибками разобрался благодаря вам, но работает немного кривовато, но теперь я уже грешу на эмулятор. попробую где-нибудь реальное устройство раздобыть и попробовать на нем. спасибо вам за помощь.
0
01.02.2018, 22:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.02.2018, 22:54

Android Studio - Unfortunately, project has stopped
Здравствуйте, решил по программировать, скачал андроид студио. Создал...

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

Ошибка unfortunately, nameProject has stopped
Когда запускаю приложение в эмуляторе android studio не выдает ошибки, но в...


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

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

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