Intereting Posts
Предварительная загрузка Webview в Activity A и передача его в действие B для более быстрой загрузки Можно автозаполнять EditTextPreference? DisplayListCanvas запускается на unbinded RenderNode (без mOwningView) Как «встряхнуть» устройство Android в эмуляторе Android, чтобы вызвать меню dev для отладки моего приложения React Native Обнаружение физического нажатия клавиши меню на Android Блокировка ориентации экрана QML Сохранение массива String в SharedPreferences INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES для установки adb Как я могу динамически создавать список всех компонентов Android ui программно? Например TextView, ImageView и т. Д. Где я могу найти иконки Android Tab Панель инструментов – переход от кнопки выдвижения к задней панели только с одним действием Включить библиотеку Boost C ++ в android Как реализовать скручивание страницы в MuPDF Установите Android: showAsAction = "ifRoom | withText" программно Лучший способ программно изменить ширину / высоту виджета?

«Предпочитаете вместо этого использовать процессор кинжала над этим классом» в Котлине

Я получаю эту заметку в сборке всякий раз, когда я ввожу в класс kotlin (кстати, у меня смешанный проект андроида с котлин и java).

Например, после этой задачи градации: compileStagingDebugJavaWithJavac (StagingDebug – мой вариант сборки), я получаю это сообщение:

«Примечание: Генерирование MembersInjector или Factory для com.packageNameXXX.CourseDiscoveryMapFragment. Предпочитаете вместо этого запустить процессор кинжала над этим классом».

Мой код CourseDiscoveryMapFragment можно увидеть здесь:

 class CourseDiscoveryMapFragment : Fragment(){ @Inject lateinit var presenter: CourseDiscoveryMapPresenter lateinit var mapView: MapView override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { val view = inflater.inflate(R.layout.fragment_discovery_map, container, false) MapsInitializer.initialize(activity) mapView = view.mapView mapView.onCreate(savedInstanceState?.getBundle(BUNDLE_KEY_MAP_STATE)) (activity as BaseActivity) .activityComponent.inject(this) } 

И мой ActivityComponent :

 @ActivityScope @Subcomponent(modules = ActivityModule.class) public interface ActivityComponent { void inject(BaseActivity baseActivity); void inject(CourseDiscoveryMapFragment fragment); //Exposed to sub-graphs. Activity activity(); } 

Итак, у меня есть компонент и модули кинжалов, написанные на Java, с инъекциями кинжалов в Котлине.

Это что-то, о чем я должен беспокоиться?

Спасибо.

Solutions Collecting From Web of "«Предпочитаете вместо этого использовать процессор кинжала над этим классом» в Котлине"

Боюсь, вы не можете. Почему бы не написать модули зависимостей в Котлине?

Чтобы написать модули зависимостей в java, вам необходимо настроить сценарий Gradle следующим образом:

  compile 'com.google.dagger:dagger:2.8' apt 'com.google.dagger:dagger-compiler:2.8' 

Но, чтобы писать модули зависимостей в Kotlin, вы должны настроить скрипт Gradle следующим образом:

 compile 'com.google.dagger:dagger:2.8' kapt 'com.google.dagger:dagger-compiler:2.8' 

Кинжалу нужен инструмент обработки аннотаций для генерации кода зависимостей во время процесса компиляции. Поэтому, я думаю, вам просто нужно использовать правильный APT (инструмент обработки аннотаций) в соответствии с правильным языком.