Интеграция с рукояткой приводит к аварийному завершению работы приложения MainActivity_GeneratedInjector

Попытка интегрировать рукоять с помощью 9X_android-application документации по API Android, но приложение 9X_android-sdk вылетело из-за следующего исключения. https://developer.android.com/training/dependency-injection/hilt-android

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.package.application/com.package.application.MainActivity}: java.lang.ClassCastException: com.package.application.DaggerAppApplication_HiltComponents_ApplicationC$ActivityRetainedCImpl$ActivityCImpl cannot be cast to com.package.application.MainActivity_GeneratedInjector 

24
0
10
Общее количество ответов: 10

Ответ #1

Ответ на вопрос: Интеграция с рукояткой приводит к аварийному завершению работы приложения MainActivity_GeneratedInjector

У меня сработало следующее:

  1. удалил аннотацию @AndtoidEntryPoint из действия.
  2. Затем прогнал код. конечно, не получилось.
  3. У меня был фрагмент внутри действия. Итак, я удалил и фрагмент кода.
  4. Затем прогнал код. это не удалось.
  5. Затем снова добавили аннотацию «@AndtoidEntryPoint» к действию.
  6. Затем прогнал код. Он запустился, и ошибка исчезла.

9X_hilt-dagger

39
0

Ответ #2

Ответ на вопрос: Интеграция с рукояткой приводит к аварийному завершению работы приложения MainActivity_GeneratedInjector

Для меня в качестве объявления зависимости 9X_hilt-dagger внутри моего приложения build.gradle пришлось использовать api вместо 9X_hilt-dagger реализации:

проект API(':features:feedModule')

Подробнее здесь: https://github.com/google/dagger/issues/2064

Обновление: Команда Dagger выпустила 9X_android-application функцию агрегации путей к классам, которая 9X_android-jetpack-hilt может решить эту проблему. Вы можете узнать 9X_android-framework больше здесь: https://dagger.dev/hilt/gradle-setup#classpath-aggregation

По сути, в вашем модуле приложения 9X_hilt build.gradle вам нужно добавить:

hilt { enableExperimentalClasspathAggregation = true } 

Если версия используемого 9X_android-sdk в проекте плагина Android Gradle меньше 9X_hilt-dagger 7.0, не забудьте также добавить это в файл 9X_android build.gradle:

android { ... lintOptions { checkReleaseBuilds false } 

22
1

  • добавление этих строк в build.gradle сработало для меня.<p><spa ...

Ответ #3

Ответ на вопрос: Интеграция с рукояткой приводит к аварийному завершению работы приложения MainActivity_GeneratedInjector

  1. Из действия удалена аннотация «@AndtoidEntryPoint».
  2. Проверил код. конечно, не получится.
  3. Снова добавьте "@AndtoidEntryPoint".
  4. Чистый проект
  5. 9X_android

18
0

Ответ #4

Ответ на вопрос: Интеграция с рукояткой приводит к аварийному завершению работы приложения MainActivity_GeneratedInjector

В моем случае я получал аналогичный ClassCastException, потому 9X_android-api что модуль, в котором был мой класс приложения 9X_dagger-hilt @HiltAndroidApp, не имел доступа к модулю, в котором было 9X_android-framework мое действие @AndroidEntryPoint. Перемещение моего класса 9X_android-ui приложения в модуль приложения (у которого 9X_android-framework есть доступ ко всем другим модулям Gradle) решило 9X_android-application проблему.

Из docs:

Поскольку для генерации кода 9X_hilt Hilt требуется доступ ко всем модулям Gradle, которые 9X_android-jetpack-hilt используют Hilt, модуль Gradle, который 9X_android-sdk компилирует ваш класс Application, также 9X_android-jetpack-hilt должен иметь все ваши модули Hilt и классы, внедренные 9X_android-application конструктором, в своих транзитивных зависимостях.

14
0

Ответ #5

Ответ на вопрос: Интеграция с рукояткой приводит к аварийному завершению работы приложения MainActivity_GeneratedInjector

Решил, добавив недостающую зависимость для 9X_hilt рукояти androidx.

kapt 'androidx.hilt:hilt-compiler:1.0.0-alpha01' 

Другие зависимости, которые 9X_android у меня есть в моем файле gradle.

implementation "androidx.hilt:hilt-lifecycle-viewmodel:1.0.0-alpha02" implementation 'com.google.dagger:hilt-android:2.28-alpha' kapt 'com.google.dagger:hilt-android-compiler:2.28-alpha' implementation "androidx.fragment:fragment-ktx:1.2.5" 

Плюс фрагмент 9X_android-api и его активность, которые вводят модель 9X_android-device просмотра с помощью рукоятки, аннотируются 9X_android-framework как @AndroidEntryPoint

8
1

  • У меня точно такая же проблема ...

Ответ #6

Ответ на вопрос: Интеграция с рукояткой приводит к аварийному завершению работы приложения MainActivity_GeneratedInjector

Я потратил пару часов на устранение именно 9X_android-framework этой проблемы, но решил ее, выполнив Invalidate 9X_android-device cache / restart + Rebuilding всех модулей.

Это 9X_android-jetpack-hilt связано с проблемой от Hilt: Hilt: More meaningful error messages

6
0

Ответ #7

Ответ на вопрос: Интеграция с рукояткой приводит к аварийному завершению работы приложения MainActivity_GeneratedInjector

Это решается путем аннулирования кеша и 9X_android перезапуска

4
1

  • ** Это НЕ ПРАВИЛЬ ...

Ответ #8

Ответ на вопрос: Интеграция с рукояткой приводит к аварийному завершению работы приложения MainActivity_GeneratedInjector

Dagger иногда не работает, даже если код 9X_android-hilt правильный.

Одно из возможных решений - переименовать 9X_android-device класс во что-нибудь другое («Class2»), повторно 9X_hilt запустить приложение и проверить, работает 9X_dagger-hilt ли оно. Если это сработает, переименуйте 9X_android класс обратно в исходное.

4
0

Ответ #9

Ответ на вопрос: Интеграция с рукояткой приводит к аварийному завершению работы приложения MainActivity_GeneratedInjector

У меня была та же проблема, и вот шаги, которые 9X_hilt я выполнил:

  1. appModule начинается с внутреннего enter image description here

  2. В 9X_android-hilt вашем приложении build.gradle внутри раздела 9X_android-api android добавьте следующую строку:

     enableExperimentalClasspathAggregation = true } 
  3. Мои зависимости 9X_android в следующем порядке:

     classpath "com.google.dagger:hilt-android-gradle-plugin:2.40.5" app-level build.gradle: top plugin section plugin{ ........... id 'kotlin-kapt' id 'dagger.hilt.android.plugin' } dependencies section //dagger-hilt implementation 'com.google.dagger:hilt-android:2.40.5' kapt 'com.google.dagger:hilt-android-compiler:2.40.5'``` 

1
0

Ответ #10

Ответ на вопрос: Интеграция с рукояткой приводит к аварийному завершению работы приложения MainActivity_GeneratedInjector

Шаги, которые необходимо выполнить:

  • Удалите файл .gradle из каталога приложения
  • Недействительный кеш и перезапустите Android Studio

Надеюсь, это решит вашу проблему.

9X_android-application

1
0