我对格雷德有意见. 我正在try 构建一个项目,但我收到一个错误:

插件[id:‘com.google.dagger.helt’,版本:‘2.36’,应用:FALSE] 在以下任何来源中均未找到:

  • Gradle核心插件(插件不在‘org.gradle’命名空间中)
  • Plugin Repositories (could not resolve plugin artifact 'com.google.dagger.hilt:com.google.dagger.hilt.gradle.plugin:2.36')
    Searched in the following repositories: Google MavenRepo

下面是我的libs.version.toml文件:

[versions]

# Plugins
android-gradle-plugin = "7.0.0"
spotless-plugin-gradle = "5.12.5"

# Kotlin
kotlin = "1.5.21"
ktlint = "0.41.0"

# AndroidX
androidx-core-ktx = "1.5.0"
androidx-appcompat = "1.3.0"

# UI
material = "1.3.0"

# Hilt DI
hilt = "2.36"

# JVM Unit Tests
junit = "4.13.2"

# Instrumentation Tests
androidx-junit = "1.1.2"
androidx-espresso-core = "3.3.0"

[plugins]

# Plugins
hilt-gradle-plugin = { id = "dagger.hilt.android.plugin", version.ref = "hilt" }
spotless-plugin-gradle = { id = "com.diffplug.spotless", version.ref = "spotless-plugin-gradle" }
kotlin-gradle-plugin = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
android-gradle-plugin = { id = "com.android.tools.build.gradle", version.ref = "android-gradle-plugin"}


[libraries]

# Kotlin
kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlin" }

# AndroidX
androidx-core-ktx = { module = "androidx.core:core-ktx", version.ref = "androidx-core-ktx" }
androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "androidx-appcompat" }

# UI
material = { module = "com.google.android.material:material", version.ref = "material" }

# Hilt DI
hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "hilt" }
hilt-compiler = { module = "com.google.dagger:hilt-android-compiler", version.ref = "hilt" }

# Hilt DI - JVM / Instrumentation Tests
hilt-testing = { module = "com.google.dagger:hilt-android-testing", version.ref = "hilt" }

# JVM Unit Tests
junit = { module = "junit:junit", version.ref = "junit" }

# Instrumentation Tests
androidx-junit = { module = "androidx.test.ext:junit", version.ref = "androidx-junit" }
androidx-espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "androidx-espresso-core" }

APP\build.gradle:

   plugins {
        alias(libs.plugins.hilt.gradle.plugin)
        alias(libs.plugins.kotlin.gradle.plugin)
        alias(libs.plugins.spotless.plugin.gradle)
    }
    
    android {
        compileSdkVersion 31
        defaultConfig {
            applicationId "com.litekite.ime"
            minSdkVersion 24
            targetSdkVersion 31
            versionCode 1
            versionName "1.0"
            vectorDrawables.useSupportLibrary = true
            testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        }
        sourceSets {
            main.java.srcDirs += "src/main/kotlin"
            androidTest.assets.srcDirs += files("$projectDir/schemas".toString())
        }
        buildTypes {
            release {
                minifyEnabled true
                shrinkResources true
                proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            }
        }
        buildFeatures {
            viewBinding = true
            dataBinding = true
        }
        lintOptions {
            baseline file("lint-baseline.xml")
            warningsAsErrors true
            enable "Interoperability"
        }
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_11
            targetCompatibility JavaVersion.VERSION_11
        }
        kotlinOptions {
            jvmTarget = JavaVersion.VERSION_11
    
        }
    }
    
    kapt {
        correctErrorTypes true
    }
    
    dependencies {
        implementation fileTree(dir: "libs", include: ["*.jar"])
        implementation(libs.kotlin.stdlib)
        implementation(libs.androidx.core.ktx)
        implementation(libs.androidx.appcompat)
        implementation(libs.material)
    
        // Hilt
        implementation(libs.hilt.android)
        kapt(libs.hilt.compiler)
    
        // Hilt - Instrumentation test helpers
        androidTestImplementation(libs.hilt.testing)
        kaptAndroidTest(libs.hilt.compiler)
    
        // Hilt - Local unit test helpers
        testImplementation(libs.hilt.testing)
        kaptTest(libs.hilt.compiler)
    
        testImplementation(libs.junit)
        androidTestImplementation(libs.androidx.junit)
        androidTestImplementation(libs.androidx.espresso.core)
    }

Biuld.gradle:

plugins {
    alias(libs.plugins.hilt.gradle.plugin) apply false
    alias(libs.plugins.kotlin.gradle.plugin) apply false
    alias(libs.plugins.spotless.plugin.gradle) apply false
   
}

allprojects {
    repositories {
        google()
        mavenCentral()
    }

}

allprojects {
    repositories {
        google()
        mavenCentral()
    }
}

spotless {
    ratchetFrom 'origin/main'
    format 'misc', {
        target '**/*.gradle', '**/*.md', '**/.gitignore'
        trimTrailingWhitespace()
        indentWithSpaces()
        endWithNewline()
    }
    format 'xml', {
        target '**/*.xml'
        trimTrailingWhitespace()
        indentWithSpaces()
        endWithNewline()
    }
    kotlin {
        target '**/src/**/*.kt'
        ktlint(libs.versions.ktlint.get())
        licenseHeaderFile rootProject.file('spotless/copyright.kt')
    }
}

我不明白错误是什么,ChatGPT给出了相同的答案. 如果有人知道原因是什么以及如何修复它,请帮助. 我使用的是Gradle 8.0

DistributionUrl=https://services.gradle.org/distributions/gradle-8.0-bin.zip

Settings.gradle:

pluginManagement {
    repositories {
        google()
        mavenCentral()
        gradlePluginPortal()
    }
}

rootProject.name = "IME"
include ':app'

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
    }
}

推荐答案

try 在libs.version.toml中将dagger.hilt.android.plugin替换为com.google.dagger.hilt.android.

hilt-gradle-plugin = { id = "com.google.dagger.hilt.android", version.ref = "hilt" }

如果这样还不管用,那就试着把这条从build.gradle上删除:

allprojects {
    repositories {
        google()
        mavenCentral()
    }

}
allprojects {
    repositories {
        google()
        mavenCentral()
    }
}

并将其添加到setting.gradle:

pluginManagement {
    repositories {
        google()
        mavenCentral()
        gradlePluginPortal()
    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
    }
}

编辑:

柄的版本可能有问题,请try 2.44或2.50这样的新版本.但有一个警告,IS可能与其他过时的依赖项不兼容.

Android相关问答推荐

打开平板电脑的下载文件夹中的文件,例如使用其mimeType将Intent发送到我们的应用程序

Android深度链接配置中的URL片段匹配'

Android设备.Net Maui上的mp3文件列表

如何处理谷歌未经证实的应用程序拒绝?

Android,从C++调用的铁 rust 库缺少符号

MAP函数返回单位列表而不是字符列表

在带有REACT-Native-CLI的开发和生产中使用Firebase的最佳实践

如何从LazyColumn中的图标异步获取可绘制的加载?

在Android中使用Room从SQlite数据库中获取实体列表的正确方式是什么?

Jetpack Compose的val变量不能被重新分配

在 kotlin 中动态添加 GridView

java.lang.ExceptionInInitializerError -- 原因:java.lang.NullPointerException

将 CircularProgressIndicator 添加到按钮而不增加其高度

以下代码如何在 Android 上运行

如何在 Delphi 和 Android 上避免 Indy Socket Error #13 Access denied 异常?

Compose Accompaniist Pager 中的 TabRow/Tab 重组问题

组合 - 重新组合图像

房间创建三四表关系

为什么我在 Jetpack Compose 中被警告可选修饰符参数应该具有默认值修饰符?

现代Android中的后台处理