Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
leonardo666
3 / 3 / 0
Регистрация: 16.09.2016
Сообщений: 115
1

FATAL EXCEPTION: main при старте приложения на android ниже API 21

13.01.2017, 11:03. Просмотров 471. Ответов 14
Метки нет (Все метки)

Не могу понять где искать ошибку.
Приложение при запуске на android ниже API 21 сразу падает с ошибкой

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
09-08 03:19:31.171 27094-27094/название пакета E/AndroidRuntime: FATAL EXCEPTION: main
                                                                               Process: название пакета, PID: 27094
                                                                               java.lang.VerifyError: путь/MainActivity
                                                                                   at java.lang.Class.newInstanceImpl(Native Method)
                                                                                   at java.lang.Class.newInstance(Class.java:1208)
                                                                                   at android.app.Instrumentation.newActivity(Instrumentation.java:1067)
                                                                                   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2297)
                                                                                   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2471)
                                                                                   at android.app.ActivityThread.access$900(ActivityThread.java:175)
                                                                                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308)
                                                                                   at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                   at android.os.Looper.loop(Looper.java:146)
                                                                                   at android.app.ActivityThread.main(ActivityThread.java:5602)
                                                                                   at java.lang.reflect.Method.invokeNative(Native Method)
                                                                                   at java.lang.reflect.Method.invoke(Method.java:515)
                                                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
                                                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
                                                                                   at dalvik.system.NativeStart.main(Native Method)
09-08 03:19:31.181 1238-1238/? D/SurfaceWidgetView: destroyHardwareResources():1116038256
09-08 03:19:31.181 803-1036/? W/ActivityManager:   Force finishing activity путь/.MainActivity
Если запускаю на android 5 и выше все нормально.
Можно конечно поставить minSdkVersion 21 но это же не решение.
На что ссылается тоже не ясно. Помогите.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2017, 11:03
Ответы с готовыми решениями:

FATAL EXCEPTION: main
Вот код: import com.independentsoft.exchange.Service; import android.app.Activity; import...

FATAL EXCEPTION: main
Я только начал проходить уроки по программированию на android и сразу же ошибка - unfortunately,...

Fatal Exception: main
Здравствуйте, пишу свое первое приложение, помогите пожалуйста. Проблема в том, что в коде никаких...

FATAL EXCEPTION: main
добрый день, столкнулся с проблемой, когда выбивает подобную ошибку: 12-12 07:18:22.455:...

FATAL EXCEPTION: main
Пишу свое 1 приложение, столкнулся с проблемой. при загрузке FATAL ERROR и все тут. Помогите что...

14
Vladimir93
69 / 71 / 11
Регистрация: 28.06.2015
Сообщений: 284
13.01.2017, 11:06 2
Библиотеки обратной совместимости добавлены?
0
leonardo666
3 / 3 / 0
Регистрация: 16.09.2016
Сообщений: 115
13.01.2017, 11:16  [ТС] 3
Вот тут немного плаваю как их добавить или ка это выглядит ?

Добавлено через 1 минуту
Где среда ругалась изначально я ставил кпримеру
Java
1
@TargetApi(Build.VERSION_CODES.M)
0
Vladimir93
69 / 71 / 11
Регистрация: 28.06.2015
Сообщений: 284
13.01.2017, 12:06 4
gradle файл:
dependencies {

compile 'com.android.support:appcompat-v7:23.0.1' - Вот это одна из библиотек

}


А еще подробнее вот тут https://developer.android.com/traini...ity.html?hl=ru
0
leonardo666
3 / 3 / 0
Регистрация: 16.09.2016
Сообщений: 115
13.01.2017, 12:35  [ТС] 5
А так у меня там вот так обстоят дела
Java
1
2
3
4
5
6
7
8
dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:25.1.0'
    compile 'com.android.support:design:25.1.0'
 
 
}
и если сейчас поставить меньше то ругается соответственно
0
Pablito
2812 / 2236 / 754
Регистрация: 12.05.2014
Сообщений: 7,824
Завершенные тесты: 1
13.01.2017, 12:40 6
что бы скопировать сюда ВЕСЬ build.gradle не хватило буфера обмена?
0
leonardo666
3 / 3 / 0
Регистрация: 16.09.2016
Сообщений: 115
13.01.2017, 12:57  [ТС] 7
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
apply plugin: 'com.android.application'
 
android {
    
    compileSdkVersion 25
    buildToolsVersion "23.0.3"
    defaultConfig {
        applicationId "..."
        minSdkVersion 15
        targetSdkVersion 25
        versionCode 15
        versionName "2.1.4"
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.avituz
        }
    }
}
 
dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:25.1.0'
    compile 'com.android.support:design:25.1.0'
 
 
}
0
Pablito
2812 / 2236 / 754
Регистрация: 12.05.2014
Сообщений: 7,824
Завершенные тесты: 1
13.01.2017, 13:00 8
а это точно весь лог ошибки?
мне кажется нет, что-то еще должно быть
0
leonardo666
3 / 3 / 0
Регистрация: 16.09.2016
Сообщений: 115
13.01.2017, 13:13  [ТС] 9
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
09-08 05:46:01.186 13434-13434/... W/dalvikvm: VFY: unable to resolve exception class 283 (Landroid/security/keystore/KeyPermanentlyInvalidatedException;)
09-08 05:46:01.186 13434-13434/... W/dalvikvm: VFY: unable to find exception handler at addr 0x3a
09-08 05:46:01.186 13434-13434/... W/dalvikvm: VFY:  rejected Lcom/.../MainActivity;.cipherInit ()Z
09-08 05:46:01.186 13434-13434/... W/dalvikvm: VFY:  rejecting opcode 0x0d at 0x003a
09-08 05:46:01.186 13434-13434/... W/dalvikvm: VFY:  rejected Lcom/.../MainActivity;.cipherInit ()Z
09-08 05:46:01.186 13434-13434/... W/dalvikvm: Verifier rejected class Lcom/.../MainActivity;
09-08 05:46:01.186 13434-13434/... W/dalvikvm: Class init failed in newInstance call (Lcom/.../.../.../MainActivity;)
09-08 05:46:01.186 13434-13434/... D/AndroidRuntime: Shutting down VM
09-08 05:46:01.186 13434-13434/... W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x4203dda0)
09-08 05:46:01.196 13434-13434/... E/AndroidRuntime: FATAL EXCEPTION: main
                                                                               Process: ..., PID: 13434
                                                                               java.lang.VerifyError: .../MainActivity
                                                                                   at java.lang.Class.newInstanceImpl(Native Method)
                                                                                   at java.lang.Class.newInstance(Class.java:1208)
                                                                                   at android.app.Instrumentation.newActivity(Instrumentation.java:1067)
                                                                                   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2297)
                                                                                   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2471)
                                                                                   at android.app.ActivityThread.access$900(ActivityThread.java:175)
                                                                                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308)
                                                                                   at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                   at android.os.Looper.loop(Looper.java:146)
                                                                                   at android.app.ActivityThread.main(ActivityThread.java:5602)
                                                                                   at java.lang.reflect.Method.invokeNative(Native Method)
                                                                                   at java.lang.reflect.Method.invoke(Method.java:515)
                                                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
                                                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
                                                                                   at dalvik.system.NativeStart.main(Native Method)
09-08 05:46:01.196 803-1360/? W/ActivityManager:   Force finishing activity .../.MainActivity
09-08 05:46:01.336 1276-1446/? D/dxoptimizer.gwl: Got unexpected exception: java.io.WriteAbortedException: Read an exception; java.io.NotSerializableException: org.json.JSONObject
09-08 05:46:01.506 803-1360/? I/WindowManager: Screenshot max retries 4 of Token{42fe7928 ActivityRecord{428397c8 u0 com.avitus.filippov.keymaster/.MainActivity t24 f}} appWin=Window{4342b1b0 u0 Starting ...} drawState=4
09-08 05:46:01.506 803-1360/? W/WindowManager: Screenshot failure taking screenshot for (720x1280) to layer 21015
09-08 05:46:01.547 13464-13464/? I/dumpstate: begin
09-08 05:46:01.577 803-943/? I/SpenGestureManager: setFocusWindow0
0
Pablito
2812 / 2236 / 754
Регистрация: 12.05.2014
Сообщений: 7,824
Завершенные тесты: 1
13.01.2017, 13:19 10
значит что-то в коде MainActivity
предполагаю там ахтунг и наверное @TargetApi(Build.VERSION_CODES.M) прописано прямо в шапке или onCreate активити, да?
0
leonardo666
3 / 3 / 0
Регистрация: 16.09.2016
Сообщений: 115
13.01.2017, 13:32  [ТС] 11
для сканера отпечатков только но и то в условии

Java
1
 if (Build.VERSION.SDK_INT > 22) {
и до метода create

Java
1
2
3
4
5
6
7
    private FingerprintManager fingerprintManager;
    private KeyguardManager keyguardManager;
    private KeyStore keyStore;
    private KeyGenerator keyGenerator;
    private static final String KEY_NAME = "...";
    private Cipher cipher;
    private FingerprintManager.CryptoObject cryptoObject;
0
Pablito
2812 / 2236 / 754
Регистрация: 12.05.2014
Сообщений: 7,824
Завершенные тесты: 1
13.01.2017, 14:01 12
Java
1
private FingerprintManager fingerprintManager
который появился только в 23 версии
я не уверен что можно вот так просто взять и объявить его как поле класса и запускать на старых версиях
0
hemoa
-1 / 5 / 0
Регистрация: 22.11.2016
Сообщений: 68
14.01.2017, 02:11 13
напишу небольшое руководство именно о том, где\как искать ошибки такого рода

VerifyError означает то, что что-то не то в скомпилированном байт-коде MainActivity. наверно действительно где-то ссылка на класс, которого не существует, но где именно...
чтобы решить такую проблему, можно тупо попробовать комментировать все дойдя до состояния MainActivity с одним лишь onCreate и даже без него вообще, тогда обнаружится где именно проблема

но тебе придется именно все комментировать, это ошибка не выполнения а скажем так интерпретации байт-кода Dalvikом, выполнение твоего кода даже не началось, сперва активити ПОЛНОСТЬЮ интерпретируется далвиком, поэтому такого рода проблема может быть в любом месте а не только там где идет запуск активити, она даже может быть в методе который ты вообще нигде не вызываешь

более фундаментальное решение - это подружиться с ассемблером (гугли apktool) - нужно знать то с чем работаешь - вот ты небось смотришь только на стектрейс с VerifyError в котором нет никакой конкретики и считаешь что в логах ничего вообще нет - но в логе еще и вот есть:
Код
09-08 05:46:01.186 13434-13434/... W/dalvikvm: VFY: unable to resolve exception class 283 (Landroid/security/keystore/KeyPermanentlyInvalidatedException;)
09-08 05:46:01.186 13434-13434/... W/dalvikvm: VFY: unable to find exception handler at addr 0x3a
09-08 05:46:01.186 13434-13434/... W/dalvikvm: VFY:  rejected Lcom/.../MainActivity;.cipherInit ()Z
09-08 05:46:01.186 13434-13434/... W/dalvikvm: VFY:  rejecting opcode 0x0d at 0x003a
09-08 05:46:01.186 13434-13434/... W/dalvikvm: VFY:  rejected Lcom/.../MainActivity;.cipherInit ()Z
09-08 05:46:01.186 13434-13434/... W/dalvikvm: Verifier rejected class Lcom/.../MainActivity;
09-08 05:46:01.186 13434-13434/... W/dalvikvm: Class init failed in newInstance call (Lcom/.../.../.../MainActivity;)
мог бы догадаться то что наличие такого сообщения это не нормально, а VFY = тот самый VeriFY

ведь dalvik, как ты понимаешь, работает не с кодом а с байт-кодом, там свой синтаксис асма и он не совпадает с джавой, на языке асма вот это
Код
Lcom/.../MainActivity;.cipherInit ()Z
означает это
Код
MainActivity.cipherInit()
а именно этот метод выплевывает dalvik судя по логу - его и попробуй закоментить первым -если есть еще такие то и их тоже - уже конкретика
и вот еще пишет:
Код
unable to resolve exception class 283 (Landroid/security/keystore/KeyPermanentlyInvalidatedException;)
будто не может в телефоне найти класс android.security.keystore.KeyPermanentlyInvalidatedException
наведи-ка справки по этому классу в доках, уж не Added in API 21 ли он?
если это так и если он у тебя в try-catch то думай сам уже что с этим делать... можно тупо заменить на просто Exception...
0
leonardo666
3 / 3 / 0
Регистрация: 16.09.2016
Сообщений: 115
14.01.2017, 13:50  [ТС] 14
Нашел что вызывает это вот этот метод

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
@TargetApi(Build.VERSION_CODES.M)
    public boolean cipherInit() {
        try {
            cipher = Cipher.getInstance(
                    KeyProperties.KEY_ALGORITHM_AES + "/"
                            + KeyProperties.BLOCK_MODE_CBC + "/"
                            + KeyProperties.ENCRYPTION_PADDING_PKCS7);
        } catch (NoSuchAlgorithmException |
                NoSuchPaddingException e) {
            throw new RuntimeException("Failed to get Cipher", e);
        }
 
        try {
            keyStore.load(null);
            SecretKey key = (SecretKey) keyStore.getKey(KEY_NAME,
                    null);
            cipher.init(Cipher.ENCRYPT_MODE, key);
            return true;
        } catch (KeyPermanentlyInvalidatedException e) {
            return false;
        } catch (KeyStoreException | CertificateException
                | UnrecoverableKeyException | IOException
                | NoSuchAlgorithmException | InvalidKeyException e) {
            throw new RuntimeException("Failed to init Cipher", e);
        }
    }
но тогда опят ь не понятно там же аннотация есть

Добавлено через 5 часов 40 минут
Да действительно в Android 4 ругается на отсутствие класса KeyPermanentlyInvalidatedException
в общем убрал и поставил просто Exception и все ок.
0
hemoa
-1 / 5 / 0
Регистрация: 22.11.2016
Сообщений: 68
16.01.2017, 07:05 15
leonardo666,
но тогда опят ь не понятно там же аннотация есть
а где ты видел чтобы аннотации, вообще на что-нибудь влияли? очень часто это просто комменты, максимум влияют на компилятор, но здесь ясно что TargetApi на него не влияет и он обязан скомпилировать код в любом случае, ну а при выполнении как я писал проблема еще при загрузке класса, а не выполнении метода, а загружается он опять же целиком и раз в нем есть метод, то никуда он не денется
@TargetApi - просто коммент.
0
16.01.2017, 07:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2017, 07:05

FATAL EXCEPTION: main (
Пишу новостное приложение. Прога начинается с navigation drawer activity, в которое я запарсил...

FATAL EXCEPTION: main
Забавная у меня ситуация, вот создаю новый проект и он не хочет запускаться ни в какую, хотя ничего...

FATAL EXCEPTION: main
Всем привет. Не получается программка из урока с передачей данных из одного активити в другое. Уже...


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

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

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