You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio依赖配置后仍报未解析引用及Gradle构建错误

问题:引入Glide/Gson/Volley后出现未解析引用及Gradle构建错误

开发电影应用时,引入Glide、Gson、Volley等第三方库后,代码中使用这些库出现unresolved reference(未解析引用)提示,同时Gradle构建失败。尝试多种修复方法无效,以下是相关配置文件及错误信息:

配置文件

libs.versions.toml

[versions]
appcompat = "1.7.0"
material = "1.12.0"
activity = "1.9.0"
constraintlayout = "2.1.4"
glide = "4.12.0"
gson = "2.10.1"
volley = "1.2.1"
junit = "4.13.2"
extjunit = "1.1.3"
espresso = "3.4.0"

[libraries]
appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
material = { group = "com.google.android.material", name = "material", version.ref = "material" }
activity = { group = "androidx.activity", name = "activity", version.ref = "activity" }
constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" }
glide = { group = "com.github.bumptech.glide", name = "glide", version.ref = "glide" }
gson = { group = "com.google.code.gson", name = "gson", version.ref = "gson" }
volley = { group = "com.android.volley", name = "volley", version.ref = "volley" }
junit = { group = "junit", name = "junit", version.ref = "junit" }
ext.junit = { group = "androidx.test.ext", name = "junit", version.ref = "extjunit" }
espresso.core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espresso" }

settings.gradle.kts

pluginManagement {
    repositories {
        google {
            content {
                includeGroupByRegex("com\\.android.*")
                includeGroupByRegex("com\\.google.*")
                includeGroup("androidx.*")
            }
        }
        mavenCentral()
        gradlePluginPortal()
    }
}

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
    }
    versionCatalogs {
        create("libs") {
            from(files("gradle/libs.versions.toml"))
        }
    }
}

rootProject.name = "PoPoMovies"
include(":app")

build.gradle.kts(app模块)

plugins {
    alias(libs.plugins.android.application)
}

android {
    namespace = "com.example.popomovies"
    compileSdk = 34

    defaultConfig {
        applicationId = "com.example.popomovies"
        minSdk = 26
        targetSdk = 34
        versionCode = 1
        versionName = "1.0"

        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            isMinifyEnabled = false
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
        }
    }
    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }
}

dependencies {
    implementation(libs.appcompat)
    implementation(libs.material)
    implementation(libs.activity)
    implementation(libs.constraintlayout)
    implementation(libs.glide) // 无法导入
    implementation(libs.gson) // 无法导入
    implementation(libs.volley) // 无法导入
    testImplementation(libs.junit)
    androidTestImplementation(libs.ext.junit)
    androidTestImplementation(libs.espresso.core)
}

Gradle构建错误信息

FAILURE: Build failed with an exception. * What went wrong: org.gradle.api.InvalidUserDataException: 
    On library declaration 'ext' expected to find any of 'group', 'module', 'name', or 'version' but found unexpected key 'junit'. >
    On library declaration 'ext' expected to find any of 'group', 'module', 'name', or 'version' but found unexpected key 'junit'.

解决方案

1. 修复Gradle构建错误(核心问题)

构建报错的原因是libs.versions.toml中ext.junit的命名格式不符合Gradle版本目录规范:点号会被Gradle解析为嵌套结构,导致ext被误认为是独立的库声明,而非ext.junit的前缀。

修复方式二选一:

方式一:改用驼峰命名(推荐)

修改libs.versions.toml的[libraries]部分:

# 替换原有的ext.junit和espresso.core
extJunit = { group = "androidx.test.ext", name = "junit", version.ref = "extjunit" }
espressoCore = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espresso" }

同步修改build.gradle.kts的依赖引用:

dependencies {
    // ... 其他依赖不变
    androidTestImplementation(libs.extJunit)
    androidTestImplementation(libs.espressoCore)
}
方式二:用引号包裹命名

如果想保留点号格式,在libs.versions.toml中用引号包裹库名:

"ext.junit" = { group = "androidx.test.ext", name = "junit", version.ref = "extjunit" }
"espresso.core" = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espresso" }

同步修改build.gradle.kts的引用方式:

dependencies {
    // ... 其他依赖不变
    androidTestImplementation(libs["ext.junit"])
    androidTestImplementation(libs["espresso.core"])
}

2. 解决未解析引用问题

修复构建错误后,执行以下步骤确保库能正常导入:

  • 点击Android Studio工具栏的Sync Project with Gradle Files按钮,等待依赖同步完成
  • 执行Build → Clean Project,然后Build → Rebuild Project
  • 检查代码中的导入语句是否正确:
    • Glide:import com.bumptech.glide.Glide
    • Gson:import com.google.gson.Gson
    • Volley:import com.android.volley.RequestQueue等
  • 若仍有问题,清除Android Studio缓存:File → Invalidate Caches... → 勾选"Invalidate and Restart"

内容的提问来源于stack exchange,提问作者GhouLhatesC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 02:37:06