问题标签 [dagger-hilt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
305 浏览

java - 使用匕首 + 解析服务器 SDK:java.lang.IllegalArgumentException

目前,我正在开发一个项目,我尝试同时使用 dagger (hilt) 和 parseServer SDK。问题是,在我看来,不可能在一个项目中使用这种组合......

以下是我对为什么我认为这是不可能的看法,至少在方式上并且知道我希望它是怎样的:

使用 Parse SDK 并创建类时,您必须使用@ParseClasssName("YourDBClassName"). 这个自定义类必须onCreate()ParseObject.registerSubclass(YourClassName::class.java)调用之前注册Parse.initialize...

@Inject lateinit var YourClassName现在我的问题来了:当使用 dagger (hilt) 并创建这个 customClass 时,它必须在调用之前注入onCreate()。但是当你inject在调用解析之前这个customClassonCreate()会抛出一个错误,因为1.它不知道这个类是一个customClass 2. ParseObject 必须在onCreate()方法内创建。

为了更清楚一点,这是我的代码和我想要实现的目标:

自定义用户类

应用模块

主要活动

主应用

当前错误堆栈

请注意!

  1. 我以前从未使用过依赖注入
  2. 我是匕首新手(刀柄)
  3. 我是解析sdk的新手

所以有可能我只是不具备编写我想要的代码的知识。我想要做的是,匕首(刀柄)创建用户+获取他的名字等......

我感谢每一个帮助,谢谢!

0 投票
1 回答
2055 浏览

android - 通过构建器注入的 Hilt 适配器为空

我是匕首和刀柄的新手,我正在尝试使用 Hilt 使用构建器将我的适配器注入到我的片段中(片段实际上是在片段寻呼机适配器中,因此它和适配器有多个实例),看起来设置正确,我在 onCreate 中的 super 之前构建了组件,但是当稍后尝试在片段中访问它时适配器为空,我想知道以后是否需要以某种方式提供它,例如我的片段中有我的适配器

所以我的问题是如果组件设置正确应该可以工作还是我错过了一个步骤?我想做的是像 cardAdapter = DaggerCardAdapterComponent.getCardAdapter 但我不能在组件中放置提供方法,我在这里查看了匕首迁移指南,这对我来说有点复杂,因为我只有几个星期在切换到刀柄之前用匕首,但指南提到

最后,如果针对不同的活动或片段组件进行了不同的配置,您可能必须重新设计一些东西。例如,您可以在活动上使用新接口来提供对象。

所以我尝试了这个,这让我实现了接口,然后返回了一个卡适配器,但我不确定我应该在这里返回什么,欢迎任何帮助

这是我的卡适配器组件

这是我的卡适配器构造函数

0 投票
1 回答
2536 浏览

android - Hilt Fragments 必须附加到 @AndroidEntryPoint Activity。发现:类

是否必须在所有依赖类上添加 @AndroidEntryPoint 注释,例如依赖于活动的片段。是否有任何替代解决方案可以克服此异常?

0 投票
2 回答
3498 浏览

android - 用于 UI 测试的 Hilt 依赖注入说“HiltAndroidRule”没有被添加,但它是

我正在尝试使用 Hilt 进行依赖注入,但它给出了错误java.lang.IllegalStateException: The component was not created. Check that you have added the HiltAndroidRule.The HiltAndroidRule is added 虽然:

我也尝试在类中添加一个 ItemsModule ,但结果相同。

0 投票
2 回答
772 浏览

android - java.lang.RuntimeException:无法在单元测试中创建类 ViewModel 的实例

我正在使用带有刀柄喷气背包集成的匕首刀柄

我的生产依赖项

我的测试依赖项

现在在我的活动中,我正在使用by viewModels()扩展表单喷气背包

在我的 ViewModel 中,我使用@ViewModelInject的是 jetpack

它在生产代码中运行良好,但是当使用 Robolectric 从测试中启动活动时,应用程序将因此异常而崩溃

这是我的测试课

这是我的TestApplication

0 投票
1 回答
4012 浏览

android - 如何使用 Hilt 模拟视图模型以进行单元测试片段?

我有一个使用 Hilt 进行依赖注入的 android 应用程序设置,并且想对我的片段进行单元测试。

我目前正在使用以下方法创建我的视图模型:

我正在使用此处的代码创建用于测试的片段

我需要用一个模拟替换这个 ExampleViewModel,我该怎么做呢?

0 投票
5 回答
7111 浏览

android - HILT:lateinit 属性存储库尚未在 ViewModel 中初始化

我在带有 HILT 的多模块 android 项目中面临这个问题。

我的模块是

  1. 应用模块
  2. 视图模型模块
  3. 用例模块
  4. 数据源模块

'应用模块'

'视图模型模块'

'用例模块'

'数据源模块'

依赖项是

MyFragment ---> MyViewModel ---> MyUseCase ---> DataSource

我对这段代码做错了什么,请纠正它。

0 投票
1 回答
4443 浏览

android - 带有 Hilt 的 Dagger 从模块中的适配器中注入 ActivityContext

我正在使用匕首和刀柄,我想将 @ActivityContext 从模块注入到适配器,但我收到了这个错误 -

这是我的 HomeActivityModule -

这是我的适配器 -

哪一部分是错的?

0 投票
2 回答
1184 浏览

android - Android Hilt DI - 错误:包 {ApplicationClassName}_HiltComponents 不存在

我正在为依赖注入版本 2.28-alpha 使用新的 Hilt 库。我遵循了 Hilt 文档并使用注释对 Application 类进行了@HiltAndroidApp注释。但是当我尝试构建我的项目时,它会抛出一个巨大的错误列表,所有这些都类似于:

我已经搜索过它,但由于它是一个新库,因此没有太多可用的 QnA。为什么会抛出该错误,我该如何解决?

0 投票
5 回答
19866 浏览

android - 已应用 Hilt Android Gradle 插件,但未找到 com.google.dagger:hilt-android-compiler 依赖项

我收到错误消息“应用了 Hilt Android Gradle 插件,但未com.google.dagger:hilt-android-compiler找到依赖项。” 在构建项目时。

这是我如何将刀柄添加到我的项目中。

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述