#android #kotlin #crash #android-service #dagger-2
#Android #kotlin #сбой #android-сервис #кинжал-2
Вопрос:
У меня есть служба, и я использую dagger2 v2.27
, в консоли Google Play Store у вас произошел следующий сбой (у меня нет этого сбоя в консоли Firebase).
Вызвано: java.lang.Исключение RuntimeException: в dagger.android.AndroidInjection.inject (AndroidInjection.java:124)
в app.ui.main.ServiceNotificationListener.onCreate (ServiceNotificationListener.java:34) в android.app.ActivityThread.handleCreateService (ActivityThread.java:3758)
Я использую службу, которая расширяет Android NotificationListenerService
, в onCreate
у меня есть следующее
override fun onCreate() {
AndroidInjection.inject(this) // line 34
}
Основное приложение:
class MainApplication : Application(), HasAndroidInjector {
override fun onCreate() {
super.onCreate()
DaggerAppComponent
.builder()
.application(this)
.build()
.inject(this)
}
}
В AndroidManifest.xml
<application
android:hardwareAccelerated = "true"
android:name=".ui.MainApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme.NoActionBar.NoStatusBar">
Я не могу воспроизвести ошибку, я думаю, что приложение равно нулю, но не уверен, как я могу решить проблему для моей службы (зависит от NotificationListener) Большое спасибо
Комментарии:
1. Вы видели этот один ?
Ответ №1:
Я написал статью об этой ошибке. Если вы не знаете реальную проблему, ее трудно отследить или воспроизвести, а еще сложнее отладить. Это злая ошибка, и известно, что она привела по крайней мере одного инженера на грань безумия. В статье подробно рассказывается о реальной проблеме.
TL; DR — Просто установите android:allowBackup=false
, и это должно исправить ваши сбои.
….
Мне нужно еще одно пиво, чтобы заглушить память об этой ошибке сейчас.
Ответ №2:
Если возможно, поделитесь кодом, используемым в NotificationListenerService. Поскольку это сервис, я бы предпочел внедрить его в класс модуля dagger.