标签: dagger-hilt

在以下任何来源中均未找到插件 [id: 'dagger.hilt.android.plugin']

当我想在我的项目中使用@AndroidEntryPoint(它是 hilt 的属性)时,我收到以下警告。

 Expected @AndroidEntryPoint to have a value. Did you forget to apply the Gradle Plugin? (dagger.hilt.android.plugin)
Run Code Online (Sandbox Code Playgroud)

当我尝试将 id 'dagger.hilt.android.plugin' 添加到项目的模块级 build.gradle 文件中时,出现以下错误。

org.gradle.api.plugins.UnknownPluginException: Plugin [id: 'dagger.hilt.android.plugin'] was not found in any of the following sources:
Run Code Online (Sandbox Code Playgroud)

我尝试将其添加到项目模块级别的 build.gradle 文件中,如下所示。他们都给出了一个错误。

在此输入图像描述

我尝试将其作为类路径添加到项目级别的 build.gradle 文件中,在这种情况下我仍然收到错误。

在此输入图像描述

当我创建默认项目时,创建了一个settings.gradle结构,如下所示。这是我第一次使用这个版本。我的 Android Studio 版本 Android Studio - Bumblebee | 2021.1.1 金丝雀 13

在此输入图像描述

android gradle android-studio gradle-kotlin-dsl dagger-hilt

67
推荐指数
6
解决办法
5万
查看次数

警告:任何处理器都无法识别以下选项:“[dagger.fastInit, kapt.kotlin. generated]”

当我尝试在 Android Studio 中运行或构建应用程序时,我收到此警告。为什么我会得到这个?我需要注意这个警告吗?

The following options were not recognized by any processor: '[dagger.fastInit, kapt.kotlin.generated]'
Run Code Online (Sandbox Code Playgroud)

android warnings android-build kapt dagger-hilt

66
推荐指数
3
解决办法
3万
查看次数

错误:找不到符号@dagger.hilt.InstallIn(value = {ApplicationComponent.class})

升级匕首柄后(版本:2.31-alphaApplicationComponent.class无法找到。Component类似 RoomDatabase的替代方案是什么?

@Module
@InstallIn(ApplicationComponent::class)
class RoomModule() {
private val DATABASE_NAME = "salat_time"

@Singleton
@Provides
fun provideRoomDatabase(@ApplicationContext appContext: Context) = Room.databaseBuilder(
    appContext,
    AppDatabase::class.java,
    DATABASE_NAME
).createFromAsset("db/$DATABASE_NAME.sqlite").build()

@Singleton
@Provides
fun provideLocalSalatRepository(database: AppDatabase) = LocalSalatRepository(database)

@Singleton
@Provides
fun provideDistrictRepository(database: AppDatabase) = DistrictRepository(database)
}
Run Code Online (Sandbox Code Playgroud)

android dagger-hilt

52
推荐指数
3
解决办法
7514
查看次数

如何使用 Hilt 在存储库中注入应用程序上下文?

我想将应用程序上下文注入存储库类以在存储库内创建房间数据库实例。我正在使用 Hilt 进行依赖注入。

我们可以使用 hilt 传递应用程序上下文还是必须手动传递它?

我收到以下错误:

[Dagger/MissingBinding] android.content.Context cannot be provided without an
@Provides-annotated method. public abstract static class ApplicationC 
implements ExartApplication_GeneratedInjector
Run Code Online (Sandbox Code Playgroud)

上下文错误

android dependency-injection dagger-hilt

39
推荐指数
1
解决办法
2万
查看次数

预期 @HiltAndroidApp 具有值。您是否忘记应用 Gradle 插件?

我有谷歌这个问题,但结果对我不起作用。

详情如下。

    public final class App extends com.zhixin.wedeep.common.BaseApplication implements androidx.lifecycle.LifecycleOwner {
                 ^
     // Expected @HiltAndroidApp to have a value. Did you forget to apply the Gradle Plugin?

Run Code Online (Sandbox Code Playgroud)

应用程序代码。

@HiltAndroidApp
class App : BaseApplication(), LifecycleOwner {

    @Inject
    lateinit var service: EventService


    private val mLifecycleRegistry = LifecycleRegistry(this)

}


Run Code Online (Sandbox Code Playgroud)

此模块 gradle 文件。

apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-allopen'
apply plugin: 'androidx.navigation.safeargs.kotlin'
apply plugin: 'dagger.hilt.android.plugin'

dependencies {
    implementation rootProject.ext.dependencies["hilt-android"]
    implementation rootProject.ext.dependencies["hilt-lifecycle-viewmodel"]
    kapt rootProject.ext.kapt["hilt-compiler"]
    kapt rootProject.ext.kapt["hilt-android-compiler"]
}
Run Code Online (Sandbox Code Playgroud)

谁有想法?谢谢!

android dagger-2 dagger-hilt

36
推荐指数
4
解决办法
7495
查看次数

不推荐使用 ApplicationComponent 吗?

我刚开始在 Android 上使用 Dagger Hilt 进行依赖注入,我在 Android Studio 上收到一条警告说'ApplicationComponent' is deprecated. Deprecated in Java.

我在谷歌搜索时没有找到与此警告相关的任何内容,它实际上已被弃用还是使用安全?

我还在 Dagger 的网站上注意到他们没有在“迁移到刀柄”指南中的任何地方提及它,他们使用的@InstallIn(SingletonComponent::class)似乎有效,但我不知道为什么。

android dagger dagger-hilt

33
推荐指数
2
解决办法
5830
查看次数

不推荐使用 Dagger Hilt 'Assisted' 和 'ViewModelInject'。在 Dagger Hilt View Model 1.0.0-alpha03 中

在 Dagger Hilt View Model 1.0.0-alpha01 中

    implementation "androidx.hilt:hilt-lifecycle-viewmodel:1.0.0-alpha01"
    implementation 'com.google.dagger:hilt-android:2.28-alpha'
    kapt 'androidx.hilt:hilt-compiler:1.0.0-alpha01'
    kapt 'com.google.dagger:hilt-android-compiler:2.28-alpha'
Run Code Online (Sandbox Code Playgroud)

我可以使用下面的

class MyViewModel @ViewModelInject constructor(
    private val repository: Repository,
    @Assisted private val savedStateHandle: SavedStateHandle
) : ViewModel(), LifecycleObserver {

    // Some codes...
}
Run Code Online (Sandbox Code Playgroud)

但是,当我迁移到 Dagger Hilt View Model 1.0.0-alpha03 时

    implementation "androidx.hilt:hilt-lifecycle-viewmodel:1.0.0-alpha03"
    implementation 'com.google.dagger:hilt-android:2.31.2-alpha'
    kapt 'androidx.hilt:hilt-compiler:1.0.0-alpha03'
    kapt 'com.google.dagger:hilt-android-compiler:2.31.2-alpha'
Run Code Online (Sandbox Code Playgroud)

我收到了警告

'Assisted' is deprecated. Deprecated in Java
'ViewModelInject' is deprecated. Deprecated in Java
'ViewModelInject' is deprecated. Deprecated in Java
'Assisted' is deprecated. Deprecated in Java
Run Code Online (Sandbox Code Playgroud)

有什么新的工作方式?

android android-viewmodel dagger-hilt

32
推荐指数
3
解决办法
7013
查看次数

期望@AndroidEntryPoint 具有值。您是否忘记应用 Gradle 插件?

当我在 android 中使用 Hilt 时 Room我遇到了这个错误。

完整的日志在这里:

home/someone/Desktop/Calculator/app/build/tmp/kapt3/stubs/debug/com/hamidjonhamidov/calculator/MyApplication.java:7: error: [Hilt]
public class MyApplication extends android.app.Application {
       ^
  Expected @HiltAndroidApp to have a value. Did you forget to apply the Gradle Plugin?
  [Hilt] Processing did not complete. See error above for details./home/someone/Desktop/Calculator/app/build/tmp/kapt3/stubs/debug/com/hamidjonhamidov/calculator/ui/main/MainActivity.java:7: error: [Hilt]
Run Code Online (Sandbox Code Playgroud)

任何人都知道解决方案吗?

android dagger-hilt

26
推荐指数
7
解决办法
8035
查看次数

元数据版本不受支持。检查您的 Kotlin 版本是否 >= 1.0:java.lang.IllegalStateException

我将 Kotlin 版本从 1.6.10 更改为 1.7.0。

由此

 implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10'
Run Code Online (Sandbox Code Playgroud)

升级到

 implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.0'
Run Code Online (Sandbox Code Playgroud)

希尔特抛出了一个错误。我的Hilt版本是2.42。有没有办法解决这个问题而无需再次降级?它在Kotlin 1.6.10Hilt 2.42中运行良好。但我想通过升级我的 kotlin 版本来使用它。

在此输入图像描述

android kotlin dagger-hilt

26
推荐指数
3
解决办法
2万
查看次数

SingletonComponent 缺少父声明

我刚刚更新我的Android希尔特匕首的依赖关系到1.0.0-alpha03
和我身材ApplicationComponent弃用
,取而代之的 ,但一旦我在我的代码替换它显示了这个错误我是否需要做别的任何事情,只是用它?SingletonComponent

完全错误

> Task :app:kaptDebugKotlin FAILED
error: [Hilt]
  @DefineComponent dagger.hilt.components.SingletonComponent is missing a parent declaration.
  Please declare the parent, for example: @DefineComponent(parent = ApplicationComponent.class)
  [Hilt] Processing did not complete. See error above for details.error: [Hilt]
  @DefineComponent dagger.hilt.components.SingletonComponent is missing a parent declaration.
  Please declare the parent, for example: @DefineComponent(parent = ApplicationComponent.class)
  [Hilt] Processing did not complete. See error above for details.error: [Hilt]
  @DefineComponent dagger.hilt.components.SingletonComponent is missing a parent declaration.
  Please declare …
Run Code Online (Sandbox Code Playgroud)

android dagger-hilt

25
推荐指数
2
解决办法
3415
查看次数