Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
2 / 2 / 0
Регистрация: 14.02.2012
Сообщений: 34
1

Приложение падает на старых версиях OS

24.01.2017, 12:56. Показов 859. Ответов 6

Author24 — интернет-сервис помощи студентам
Ещё раз привет.
Ещё один крик души.
* Не беспокойтесь, я не буду сливать каждую свою проблему сюда, это просто проблема №2 на эту неделю. Постараюсь начать принимать активное участие в жизни сообщества, что бы выразить благодарность за ответы.


Есть приложение.
Оно успешно работает на новых версиях андроида порядка 6.0 и выше. К нему прикручен крашлитикс, который инициализаруется в событии onCreate класса MyApp extends Application, и успешно отсылает мне баг-репорты при крашах.
Но это приложение падает на старых версиях ОС или старых телефонах, баг-репорты при этом не приходят. Не на всех. Но точно замечены падения на телефонах с ОС 4 с чем-то (у коллеги стабильно повторяется). При этом на моём другом телефоне с такой же ОС при включённом режиме разработчика никаких падений не было(выключал все разрешения, сносил, ставил заново - падений нет).

Как можно понять в чём может быть причина?

Ниже прикладываю текст gradle app
Покритикуйте, пож.
Предполагаю, что мб дело в библиотеках, около которых стоит число 24.

Код
buildscript {
    repositories {
        mavenCentral()
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
    }
}

apply plugin: 'com.android.application'
apply plugin: 'io.fabric'

repositories {
    mavenCentral()
    maven { url 'https://maven.fabric.io/public' }
}

android {
    lintOptions {
        checkReleaseBuilds false
    }

    signingConfigs {
        config {
            keyAlias 'NoName'
            keyPassword 'noname'
            storeFile file('../../keystore/nonamerest.jks')
            storePassword 'noname'
        }
    }

    compileSdkVersion 24
    buildToolsVersion "24.0.1"

    defaultConfig {
        applicationId "ru.ma.NoName"
        minSdkVersion 15
        targetSdkVersion 24
        signingConfig signingConfigs.config
        versionCode 12
        versionName "12"
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            signingConfig signingConfigs.config
            debuggable false
        }
        debug {
            debuggable true
            signingConfig signingConfigs.config
            minifyEnabled false
        }
    }
    productFlavors {
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:24.2.0'

    compile 'com.github.manuelpeinado.multichoiceadapter:multichoiceadapter:3.0.0'
    compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.4'
    compile 'me.leolin:ShortcutBadger:1.1.4@aar'
    compile 'com.google.android.gms:play-services-gcm:10.0.0'
    compile('com.crashlytics.sdk.android:crashlytics:2.6.5@aar') {
        transitive = true;
    }
    compile 'de.greenrobot:greendao:2.1.0'
    compile 'com.android.support:design:24.1.0'
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.01.2017, 12:56
Ответы с готовыми решениями:

Информация по старых версиях: VB3,4,5
Привет всем. У меня вопрос, кто то может подскозать, где можно найти в инете инфо о различиях...

Тип auto в старых версиях компиляторов
Здравствуйте. Пытаюсь работать с данным циклом, но компилятор выдаёт ошибки. У меня не новая версия...

Необходимо запускат на старых версиях Windows
В дополнительных требованиях к заданию стоит требование запуска приложения на всех ОС Win32....

Создание объекта в старых версиях JDK
Читаю книгу Тимоти Бадда "Объектно-ориентированное программирование в действии" (книга вроде 1995...

6
2883 / 2295 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
24.01.2017, 12:59 2
без логов ошибок тебе никто ничего толкового не скажет
1
2 / 2 / 0
Регистрация: 14.02.2012
Сообщений: 34
24.01.2017, 14:52  [ТС] 3
Вот в том то и вопрос - как получить эти самые логи, если на моём устройстве это не повторяется.
А на единственном устройстве по близости, где это воспроизводится, если включить режим разработчика(ведь иначе же лог не получить?), боюсь что может перестать воспроизводиться. Мб это наивный страх, и всё таки попробую сегодня отловить лог.

Добавлено через 1 час 2 минуты
Прошу прощение, глупый я.

Ниже лог
Пробую разобратсья в нём
Буду благодарен, если кто подскажет в чём может быть дело.

Код
01-24 14:15:09.148 21682-21682/ru.ma.MajorStudio W/dalvikvm: VFY: unable to resolve static field 20 (applicationId) in Lcom/android/tools/fd/runtime/AppInfo;
01-24 14:15:09.148 21682-21682/ru.ma.MajorStudio D/dalvikvm: VFY: replacing opcode 0x62 at 0x000d
01-24 14:15:09.148 21682-21682/ru.ma.MajorStudio W/dalvikvm: VFY: unable to resolve static field 19 (applicationClass) in Lcom/android/tools/fd/runtime/AppInfo;
01-24 14:15:09.158 21682-21682/ru.ma.MajorStudio D/dalvikvm: VFY: replacing opcode 0x62 at 0x0001
01-24 14:15:09.158 21682-21682/ru.ma.MajorStudio W/dalvikvm: VFY: unable to resolve static field 22 (usingApkSplits) in Lcom/android/tools/fd/runtime/AppInfo;
01-24 14:15:09.158 21682-21682/ru.ma.MajorStudio D/dalvikvm: VFY: replacing opcode 0x63 at 0x0000
01-24 14:15:09.158 21682-21682/ru.ma.MajorStudio W/dalvikvm: VFY: unable to resolve static field 22 (usingApkSplits) in Lcom/android/tools/fd/runtime/AppInfo;
01-24 14:15:09.158 21682-21682/ru.ma.MajorStudio D/dalvikvm: VFY: replacing opcode 0x63 at 0x0002
01-24 14:15:09.168 21682-21682/ru.ma.MajorStudio I/dalvikvm: Could not find method android.app.Application.registerOnProvideAssistDataListener, referenced from method com.android.tools.fd.runtime.BootstrapApplication.registerOnProvideAssistDataListener
01-24 14:15:09.168 21682-21682/ru.ma.MajorStudio W/dalvikvm: VFY: unable to resolve virtual method 15: Landroid/app/Application;.registerOnProvideAssistDataListener (Landroid/app/Application$OnProvideAssistDataListener;)V
01-24 14:15:09.168 21682-21682/ru.ma.MajorStudio D/dalvikvm: VFY: replacing opcode 0x6e at 0x0002
01-24 14:15:09.168 21682-21682/ru.ma.MajorStudio I/dalvikvm: Could not find method android.app.Application.unregisterOnProvideAssistDataListener, referenced from method com.android.tools.fd.runtime.BootstrapApplication.unregisterOnProvideAssistDataListener
01-24 14:15:09.168 21682-21682/ru.ma.MajorStudio W/dalvikvm: VFY: unable to resolve virtual method 18: Landroid/app/Application;.unregisterOnProvideAssistDataListener (Landroid/app/Application$OnProvideAssistDataListener;)V
01-24 14:15:09.168 21682-21682/ru.ma.MajorStudio D/dalvikvm: VFY: replacing opcode 0x6e at 0x0002
01-24 14:15:09.168 21682-21682/ru.ma.MajorStudio I/dalvikvm: DexOpt: unable to optimize static field ref 0x0013 at 0x12 in Lcom/android/tools/fd/runtime/BootstrapApplication;.<init>
01-24 14:15:09.168 21682-21682/ru.ma.MajorStudio I/dalvikvm: DexOpt: unable to optimize static field ref 0x0013 at 0x1d in Lcom/android/tools/fd/runtime/BootstrapApplication;.createRealApplication
01-24 14:15:09.168 21682-21682/ru.ma.MajorStudio I/dalvikvm: DexOpt: unable to optimize static field ref 0x0013 at 0x2a in Lcom/android/tools/fd/runtime/BootstrapApplication;.createRealApplication
01-24 14:15:09.168 21682-21682/ru.ma.MajorStudio I/dalvikvm: DexOpt: unable to optimize static field ref 0x0014 at 0x15 in Lcom/android/tools/fd/runtime/BootstrapApplication;.onCreate
01-24 14:15:09.178 21682-21682/ru.ma.MajorStudio I/dalvikvm: DexOpt: unable to optimize static field ref 0x0014 at 0x45 in Lcom/android/tools/fd/runtime/BootstrapApplication;.onCreate
01-24 14:15:09.178 21682-21682/ru.ma.MajorStudio I/dalvikvm: DexOpt: unable to optimize static field ref 0x0014 at 0x6f in Lcom/android/tools/fd/runtime/BootstrapApplication;.onCreate
01-24 14:15:09.178 21682-21682/ru.ma.MajorStudio I/dalvikvm: DexOpt: unable to optimize static field ref 0x0014 at 0x99 in Lcom/android/tools/fd/runtime/BootstrapApplication;.onCreate
01-24 14:15:09.178 21682-21682/ru.ma.MajorStudio D/AndroidRuntime: Shutting down VM
01-24 14:15:09.178 21682-21682/ru.ma.MajorStudio W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x41f3b2a0)
01-24 14:15:09.178 21682-21682/ru.ma.MajorStudio E/AndroidRuntime: FATAL EXCEPTION: main
                                                                   java.lang.NoClassDefFoundError: com.android.tools.fd.runtime.AppInfo
                                                                       at com.android.tools.fd.runtime.BootstrapApplication.<init>(BootstrapApplication.java:119)
                                                                       at java.lang.Class.newInstanceImpl(Native Method)
                                                                       at java.lang.Class.newInstance(Class.java:1319)
                                                                       at android.app.Instrumentation.newApplication(Instrumentation.java:997)
                                                                       at android.app.Instrumentation.newApplication(Instrumentation.java:982)
                                                                       at android.app.LoadedApk.makeApplication(LoadedApk.java:496)
                                                                       at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4170)
                                                                       at android.app.ActivityThread.access$1400(ActivityThread.java:134)
                                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
                                                                       at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                       at android.os.Looper.loop(Looper.java:137)
                                                                       at android.app.ActivityThread.main(ActivityThread.java:4867)
                                                                       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:1007)
                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:774)
                                                                       at dalvik.system.NativeStart.main(Native Method)
Добавлено через 34 минуты
Так, нашёл вот такого бедолагу
http://stackoverflow.com/quest... ntime-appi

Убрал из настроек InstanceRun сбилдил dev версию (пока не проверял на том устройстве, где точно падает).
А вот когда переключаю билд на сборку релизной версии - получаю даже на своём устройстве такую же ошибку!!! =)

Не знаю, радоваться или плакать, но поползу разбираться, что у меня там с релизной версией не так, или где-то proguard не так настроен.
0
314 / 257 / 81
Регистрация: 31.10.2016
Сообщений: 619
24.01.2017, 16:13 4
appcompat-v7:24.2.0
design:24.1.0

они как минимум должны быть одной версии.

по прогарду могу посоветовать это
1
2 / 2 / 0
Регистрация: 14.02.2012
Сообщений: 34
24.01.2017, 16:24  [ТС] 5
demixdn, спасибо, поправил, взял и там и там версию 24.2.

И моё приложение перестало падать, со слов подопытного!!! =D
Что сделал:
1. Убрал в настройках instantRun. Хз зачем, где-то посоветовали.
2. Оказалось, что подопытным я раньше кидал debug версию приложения.
2. Сбилдил релизную версию - нарвался на проблемы с прогвардом - он брал правила из какого-то файла proguard-rules.txt (не всё это приложение моих рук дело), вместо него указал proguard-rules.pro.
3. Нарвался на то, что GreenDao начало рушить приложение, т.к. прогвард рушил её классы таблиц. Дописал в proguard-rules.pro три строчки для защиты от этого, взятые с оф сайта разработчиков GreenDao.
4. Релизная версия после этого у меня запустилась. Скинул подопотным, у них тоже запустилась.
Как из этого вытащить основную причину, я пока не знаю, но эти телодвижения решили проблему падения.

Однако, возникла другая проблема - мне говорят, что у них некоторые компоненты(Spinner и EditText около него) отображаются чёрным... хм, если сам не разберусь, то сюда ещё напишу. Если разберусь, тему можно считать закрытой.
0
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
25.01.2017, 21:30 6
Цитата Сообщение от Ksar13th Посмотреть сообщение
1. Убрал в настройках instantRun. Хз зачем, где-то посоветовали.
Правильно посоветовали. Это причина многих трудноуловимых багов.
Цитата Сообщение от Ksar13th Посмотреть сообщение
прогвард рушил её классы таблиц.
Вполне типичная ситуация, тут вы правильно поступили.
Цитата Сообщение от Ksar13th Посмотреть сообщение
некоторые компоненты(Spinner и EditText около него) отображаются чёрным
На разных устройствах разные установки "по умолчанию". Начиная от размеров, заканчивая цветами. Поэтому нужно тестировать, а затем прописывать в стилях или непосредственно в компонентах нужные цвета.
1
2 / 2 / 0
Регистрация: 14.02.2012
Сообщений: 34
26.01.2017, 10:11  [ТС] 7
Спасибо!
CoolMind, спасибо за разъяснения, они устранили большую часть моих сомнений в правильности проделанных действий.

С компонентами, которые отображались чёрным, разобрался - просто у них стоял самодельный стиль "чёрная обводка", внутри которого была то ли заливка, то ли обводка чёрным (не помню сейчас). На новых версиях андроида всё отображалось как надо, а на старых видимо заливалось чёрным. Грохнул этот стиль, оставил их пока без стиля, просто дефолтными - всё предварительно работает теперь как надо.

Эту тему можно закрывать, т.к. данная проблема решена.

PS: Модеры, буду благодарен, если допишите в название темы "NoClassDefFoundError [Проблема решена]". т.к. частенько по сети встречал подобные темы без ответа. Ну, если конечно тут так принято.
1
26.01.2017, 10:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.01.2017, 10:11
Помогаю со студенческими работами здесь

Как работают VB программы на старых версиях Windows?
Я слышал, что на Windows 95 и 98 программы созданные в Visual Basic просто не работают, а требуют...

Меню Start как в старых версиях Windows
Помогите, пожалуйста. Я знаю, что скорее всего пишу не в том разделе и, наверное, не на том сайте,...

TextView глючит на старых версиях Android и в теме Holo
Написал программу на стандартной теме... Всё работает! Теперь решил поменять тему на Holo. Поменял...

Растянуть фоновый рисунок на весь экран. В старых версиях браузеров
Пытаюсь растянуть на весь экран картинку в качестве фонового рисунка. Пытаюсь сделать...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru