Перейти к содержимому

Java lang illegalstateexception что за ошибка

  • автор:

Ошибка: java.lang.IllegalStateException: System services not available to Activities before onCreate()

Из класса BroadcastReceiver запускаю метод, который находится в главном классе приложения:

public void ShowDB(Context context)< ArrayAVR = new ArrayList(); ArrayAVR.clear(); SQLiteDatabase mDataBase = DatabaseAvrHelper.getInstance(context).getWritableDatabase(); String readQuery = "SELECT * FROM " + DatabaseAvrHelper.DATABASE_TABLE_AVR + " ORDER BY " + DatabaseAvrHelper.DATE_EI_COLUMN; Cursor cursor = mDataBase.rawQuery(readQuery, null); while (cursor.moveToNext()) < int String Num_ei = cursor.getString(cursor.getColumnIndex(DatabaseAvrHelper.NUM_EI_COLUMN)); String Status_Ei = cursor.getString(cursor.getColumnIndex(DatabaseAvrHelper.STATUS_EI_COLUMN)); //String Error_Code = cursor.getString(cursor.getColumnIndex(DatabaseAvrHelper.ERROR_CODE_EI_COLUMN)); //String Comment_Ei = cursor.getString(cursor.getColumnIndex(DatabaseAvrHelper.COMMENT_EI_COLUMN)); Long Date_Ei = cursor.getLong(cursor.getColumnIndex(DatabaseAvrHelper.DATE_EI_COLUMN)); String dateString = null; if (Date_Ei != null) < SimpleDateFormat formatter = new SimpleDateFormat("dd.MM HH:mm"); dateString = formatter.format(new Date(Date_Ei)); >ArrayAVR.add(0, "№: " + Num_ei + " - " + Status_Ei + " - " + dateString); > mDataBase.close(); ListAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, ArrayAVR); ListView listview = (ListView)findViewById(R.id.listView2); listview.setAdapter(ListAdapter); > 

При выполнении метода, Java ругается на строку:

ListAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, ArrayAVR); 

мол рано выполняется код. Как правильно объявить адаптер в моем случае? Нужно, что бы метод выполнялся обязательно при срабатывании BroadcastReceiver, если это вообще возможно, если нет, то какие есть варианты.

 java.lang.RuntimeException: Unable to start receiver com.hakeem.avr.SmsBroadcastReceiver: java.lang.IllegalStateException: System services not available to Activities before onCreate() at android.app.ActivityThread.handleReceiver(ActivityThread.java:2616) at android.app.ActivityThread.access$1700(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1380) 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.IllegalStateException: System services not available to Activities before onCreate() at android.app.Activity.getSystemService(Activity.java:5035) at android.widget.ArrayAdapter.init(ArrayAdapter.java:310) at android.widget.ArrayAdapter.(ArrayAdapter.java:153) at com.hakeem.avr.Open_Close_AVR.ShowDB(Open_Close_AVR.java:155) at com.hakeem.avr.SmsBroadcastReceiver.UpdateDB(SmsBroadcastReceiver.java:69) at com.hakeem.avr.SmsBroadcastReceiver.SmsFromPdus(SmsBroadcastReceiver.java:43) at com.hakeem.avr.SmsBroadcastReceiver.onReceive(SmsBroadcastReceiver.java:27) at android.app.ActivityThread.handleReceiver(ActivityThread.java:2609) 

В общем разобрался я с BroadcasrReceiver. Если я регистрирую приемник внутри класса MyActivity , в методе onResume() , то все работает как надо, но и срабатывать он будет только если приложение запущено. Но мне нужно, что бы срабатывало всегда, поэтому так же инициализирую этот же приемник в манифесте приложения. Получается, что один и тот же код у меня дублируется, одна копия кода находится внутри класса MyActivity c вызовом метода showFromDB , вторая копия кода находится в классе SmsBroadcastReceiver , но уже без вызова метода showFromDB , т.к. при открытии приложения этот метод сработает при выполнении onCreate() класса MyActivity . Теперь у меня вопрос: такое дублирование кода — это нормально?

Как избавиться от java.lang.IllegalStateException при вызове addToBackStack?

При вызове метода addToBackStack иногда происходит java.lang.IllegalStateException: Activity has been destroyed. И как от этого избавиться?

public void addMainFragment() < hideKeyboard(); if (mainFragment == null) < mainFragment = new MainFragment(); >final FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.add(R.id.containerFrameLayout, mainFragment, "MainFragment"); ft.addToBackStack("MainFragment"); ft.commitAllowingStateLoss(); getSupportFragmentManager().executePendingTransactions(); >
  • Вопрос задан более трёх лет назад
  • 25393 просмотра

1 комментарий

Оценить 1 комментарий

Java lang illegalstateexception что за ошибка

Сигналы, что метод был вызван в недопустимое или несоответствующее время. Другими словами среда Java или приложение Java не находятся в соответствующем состоянии для требуемой работы.

Сводка конструктора

Создает IllegalStateException без сообщения детали.
Создает IllegalStateException с указанным сообщением детали.
Создает новое исключение с указанным сообщением детали и причиной.

Создает новое исключение с указанной причиной и сообщением детали (cause==null ? null : cause.toString()) (который обычно содержит класс и сообщение детали cause).

Сводка метода

Методы java.lang унаследованный от класса. Throwable

Методы java.lang унаследованный от класса. Объект

Деталь конструктора

IllegalStateException
public IllegalStateException()

Создает IllegalStateException без сообщения детали. Сообщением детали является Строка, которая описывает это определенное исключение.

IllegalStateException

Создает IllegalStateException с указанным сообщением детали. Сообщением детали является Строка, которая описывает это определенное исключение.

IllegalStateException
public IllegalStateException(String message, Throwable cause)

Создает новое исключение с указанным сообщением детали и причиной. Отметьте что сообщение детали, связанное с cause автоматически не включается в сообщение детали этого исключения.

IllegalStateException
public IllegalStateException(Throwable cause)

Создает новое исключение с указанной причиной и сообщением детали (cause==null ? null : cause.toString()) (который обычно содержит класс и сообщение детали cause). Этот конструктор полезен для исключений, которые являются немного больше чем обертки для другого throwables (например, PrivilegedActionException ).

Платформа Java™
Стандарт Эд. 7

Представьте ошибку или функцию
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE . Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.

Ошибка запуска системы обновления java.lang.IllegalStateException: PKI

Здравствуйте. Обновил сертификат RSA и теперь в логах «updater» выдает ошибку «Ошибка запуска системы обновления java.lang.IllegalStateException: PKI»и службы УТМ останавливаются.
До обновления
https://forum.rutoken.ru/uploads/images/2018/12/14a0cd1901410824a311853e90ef48a5.jpg
После обновления
https://forum.rutoken.ru/uploads/images/2018/12/5f1f7c1f0761c3796a53141edacdfbfe.jpg

update.log
2018-12-11 10:08:43,804 INFO es.programador.transport.updater.h — Запуск системы обновления
2018-12-11 10:08:45,418 INFO es.programador.transport.updater.h — Updater version: [3.0.8b000436] changeset: [8e580a4b2c8e+]
2018-12-11 10:08:45,463 DEBUG es.programador.transport.a.d — Битность системы: [32]
2018-12-11 10:08:45,467 DEBUG es.programador.transport.a.d — Версия системы: [Windows 7]
2018-12-11 10:08:45,469 DEBUG es.programador.transport.a.d — Windows: [true]
2018-12-11 10:08:45,470 DEBUG es.programador.transport.a.d — Linux: [false]
2018-12-11 10:08:45,485 DEBUG es.programador.transport.updater.h — Для RSA будет использоваться библиотека [C:\Windows\System32\rtPKCS11ECP-replica.dll]
2018-12-11 10:08:45,507 DEBUG es.programador.transport.a.d — Битность системы: [32]
2018-12-11 10:08:45,509 DEBUG es.programador.transport.a.d — Нативные файла находятся здесь:[C:\UTM\updater\lib\x32]
2018-12-11 10:08:45,566 DEBUG es.programador.transport.a.d — Создавать PKCS11 файл:always
2018-12-11 10:08:45,571 DEBUG es.programador.transport.a.d — Загрузка нативных библиотек из папки: [C:\UTM\updater\lib\x32]
2018-12-11 10:08:45,589 DEBUG es.programador.transport.a.b — Инициализация PKCS11. Начало
2018-12-11 10:08:45,598 DEBUG es.programador.transport.a.b — PKCS11 файл настройек: [C:\UTM\updater\lib\pkcs11.cfg]
2018-12-11 10:08:45,671 DEBUG es.programador.transport.a.b — PKCS11-библиотека:C:/Windows/System32/rtPKCS11ECP-replica.dll
2018-12-11 10:08:45,671 DEBUG es.programador.transport.a.b — Поиск номера слота смарт-карты (Sun/Oracle API)
2018-12-11 10:08:45,920 INFO es.programador.transport.a.b — Найден слот смарт-карты [0:Rutoken ECP ]
2018-12-11 10:08:45,923 DEBUG es.programador.transport.a.b — Конфигурационный файл: [name=TransportTerminal
library = «C:/Windows/System32/rtPKCS11ECP-replica.dll»
showInfo=true
slotListIndex=0]
2018-12-11 10:08:54,432 ERROR es.programador.transport.updater.h — Ошибка запуска системы обновления
java.lang.IllegalStateException: PKI хранилище не содержит подходящего сертификата
at es.programador.transport.a.b.a(Unknown Source)
at es.programador.transport.a.b.b(Unknown Source)
at es.programador.transport.updater.Main.a(Unknown Source)
at es.programador.transport.updater.Main.main(Unknown Source)
2018-12-11 10:08:54,476 INFO es.programador.transport.updater.h — Завершение работы (ShutdownHook)
2018-12-11 10:08:54,477 DEBUG es.programador.transport.updater.h — Остановка работы с RSA-криптографией
2018-12-11 10:08:54,502 INFO es.programador.transport.a.b — Начало вызова методов финализации
2018-12-11 10:08:54,503 INFO es.programador.transport.a.b — Используется Oracle/Sun API
2018-12-11 10:08:54,512 INFO es.programador.transport.a.b — Завершение вызова методов финализации
2018-12-11 10:11:22,795 INFO es.programador.transport.updater.h — Запуск системы обновления
2018-12-11 10:11:24,074 INFO es.programador.transport.updater.h — Updater version: [3.0.8b000436] changeset: [8e580a4b2c8e+]
2018-12-11 10:11:24,120 DEBUG es.programador.transport.a.d — Битность системы: [32]
2018-12-11 10:11:24,124 DEBUG es.programador.transport.a.d — Версия системы: [Windows 7]
2018-12-11 10:11:24,126 DEBUG es.programador.transport.a.d — Windows: [true]
2018-12-11 10:11:24,128 DEBUG es.programador.transport.a.d — Linux: [false]
2018-12-11 10:11:24,143 DEBUG es.programador.transport.updater.h — Для RSA будет использоваться библиотека [C:\Windows\System32\rtPKCS11ECP-replica.dll]
2018-12-11 10:11:24,165 DEBUG es.programador.transport.a.d — Битность системы: [32]
2018-12-11 10:11:24,167 DEBUG es.programador.transport.a.d — Нативные файла находятся здесь:[C:\UTM\updater\lib\x32]
2018-12-11 10:11:24,215 DEBUG es.programador.transport.a.d — Создавать PKCS11 файл:always
2018-12-11 10:11:24,220 DEBUG es.programador.transport.a.d — Загрузка нативных библиотек из папки: [C:\UTM\updater\lib\x32]
2018-12-11 10:11:24,238 DEBUG es.programador.transport.a.b — Инициализация PKCS11. Начало
2018-12-11 10:11:24,244 DEBUG es.programador.transport.a.b — PKCS11 файл настройек: [C:\UTM\updater\lib\pkcs11.cfg]
2018-12-11 10:11:24,257 DEBUG es.programador.transport.a.b — PKCS11-библиотека:C:/Windows/System32/rtPKCS11ECP-replica.dll
2018-12-11 10:11:24,257 DEBUG es.programador.transport.a.b — Поиск номера слота смарт-карты (Sun/Oracle API)
2018-12-11 10:11:24,497 INFO es.programador.transport.a.b — Найден слот смарт-карты [0:Rutoken ECP ]
2018-12-11 10:11:24,500 DEBUG es.programador.transport.a.b — Конфигурационный файл: [name=TransportTerminal
library = «C:/Windows/System32/rtPKCS11ECP-replica.dll»
showInfo=true
slotListIndex=0]
2018-12-11 10:11:29,326 ERROR es.programador.transport.updater.h — Ошибка запуска системы обновления
java.lang.IllegalStateException: PKI хранилище не содержит подходящего сертификата
at es.programador.transport.a.b.a(Unknown Source)
at es.programador.transport.a.b.b(Unknown Source)
at es.programador.transport.updater.Main.a(Unknown Source)
at es.programador.transport.updater.Main.main(Unknown Source)
2018-12-11 10:11:29,368 INFO es.programador.transport.updater.h — Завершение работы (ShutdownHook)
2018-12-11 10:11:29,369 DEBUG es.programador.transport.updater.h — Остановка работы с RSA-криптографией
2018-12-11 10:11:29,424 INFO es.programador.transport.a.b — Начало вызова методов финализации
2018-12-11 10:11:29,424 INFO es.programador.transport.a.b — Используется Oracle/Sun API
2018-12-11 10:11:29,432 INFO es.programador.transport.a.b — Завершение вызова методов финализации

#2 Ответ от Rassel 2018-12-11 11:57:08

Re: Ошибка запуска системы обновления java.lang.IllegalStateException: PKI

Все заработала, через 1 час

#3 Ответ от Ксения Шаврова 2018-12-11 12:10:08

  • Ксения Шаврова
  • Администратор
  • Неактивен
Re: Ошибка запуска системы обновления java.lang.IllegalStateException: PKI

Здравствуйте, Rassel, RSA сертификат выписывается по времени на сервере egais.ru
Если это время не совпадает с вашим, нужно ждать, пока сертификат станет действительным.

#4 Ответ от Vintik 2018-12-12 17:18:06

Re: Ошибка запуска системы обновления java.lang.IllegalStateException: PKI

Кто вам столько сертификатов записал на один ключ?!
Такого не должно быть

Не допускается эксплуатация аппаратного носителя:
без сертификата ключа КЭП,
без сертификата ключа RSA,
с сертификатом RSA, не соответствующим сертификату КЭП,
с использованием сертификата ключа КЭП с истекшим сроком действия,
с использованием сертификата ключа RSA с истекшим сроком действия,
с более, чем одним сертификатом КЭП,
с более, чем одним сертификатом RSA.

Сообщений 4

Страницы 1

Форум Рутокен → Вопросы по ЕГАИС → Ошибка запуска системы обновления java.lang.IllegalStateException: PKI

  • Телефон +7 (495) 925-77-90
  • 1994- © Компания «Актив»
  • Москва , улица Шарикоподшипниковская, дом 1
  • График работы: понедельник-пятница с 10:00 до 18:00

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *