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

Android Kotlin DSL Gradle无法从自定义仓库解析依赖求助

问题描述

我正在将项目的build.gradle文件转换为build.gradle.kts,已经完成核心工作并创建libs.versions.toml文件统一管理依赖,但遇到4个自定义Maven仓库依赖无法解析的问题。

相关配置信息

项目中的依赖引用(build.gradle.kts)

//Dependency Injection        
implementation(libs.hilt.android)
kapt(libs.hilt.android)
kapt(libs.androidx.hilt.compiler)
annotationProcessor(libs.hilt.compiler)

//View
implementation(libs.androidx.activity)
implementation(libs.androidx.constraintlayout)
implementation(libs.customtoast)
implementation(libs.picasso.transformations)
implementation(libs.picasso)
implementation(libs.qrgen)
implementation(libs.accessibility.tools) // <-- 无法解析
implementation(libs.apachecommons.text)
implementation(libs.custom.progressindicator) // <-- 无法解析
implementation(libs.decocharting)
implementation(libs.avilibrary) // <-- 无法解析

//Coroutines
implementation(libs.coroutines.android)
implementation(libs.coroutines.core)

//LiveData
implementation(libs.livedata.ktx)
kapt(libs.livedata.lifecycle.compiler)
implementation(libs.livedata.lifecycle.extensions)

// ViewModel
implementation(libs.viewmodel.ktx)
implementation(libs.viewmodel.compose)
implementation(libs.viewmodel.savedstate)
implementation(libs.viewmodel.lifecycleruntime.ktx)

//Networking
implementation(libs.retrofit)
implementation(libs.retrofit.gson.converter)
implementation(libs.okhttp.logging.interceptor)
implementation(project(":devenvironmentswitcher"))
implementation(libs.okhttp)
implementation(libs.gson)
implementation(libs.gson.extras)
implementation(libs.loopj.async)

//UI - Compose
implementation(libs.compose.ui)
implementation(libs.compose.ui.preview)
implementation(libs.compose.ui.material)
implementation(libs.material)

//Database
implementation(libs.room.runtime)
implementation(libs.room.ktx)
kapt(libs.room.compiler.kapt)

//Analytics
implementation(platform(libs.firebase.bom))
implementation(libs.firebase.crashlytics)
implementation(libs.firebase.analytics)
implementation(libs.firebase.performance)

//Androidx
implementation(libs.androidx.recyclerview)
implementation(libs.androidx.cardview)
implementation(libs.androidx.v4legacysupport)
implementation(libs.androidx.browser)
implementation(libs.androidx.exif)
implementation(libs.androidx.multidex)
implementation(libs.androidx.appcompat)

//Messaging
implementation(libs.firebase.messaging)
implementation(libs.firebase.core)
implementation(libs.azure.notification.handler) // <-- 无法解析
implementation(libs.azure.notification.hub)

//Play Services
implementation(libs.playservices.auth)
implementation(libs.playservices.gcm)
implementation(libs.playservices.location)
implementation(libs.playservices.maps)
implementation(libs.playservices.vision)
implementation(libs.playservices.licenses)

//Encryption
implementation(libs.spongy.castle)
implementation(libs.scotty.aes.crypt)

//Testing
testImplementation(libs.test.junit)
testImplementation(libs.test.hilt.testing)
testImplementation(libs.test.coroutines.test)
testImplementation(libs.test.mockk)
kaptTest(libs.test.hilt.compiler.testing)
androidTestImplementation(libs.test.junit.androidx)
androidTestImplementation(libs.test.rules)
androidTestImplementation(libs.test.junit.ktx)
androidTestImplementation(libs.test.espresso.core)
implementation(libs.test.arch.testing)

//Misc
implementation(libs.scotty.rootbeer)
implementation(libs.joda)
implementation(libs.device.names)
implementation(libs.iocard)

libs.versions.toml中无法解析的依赖配置

custom-progressindicator = { group = "com.kaopiz", name = "kprogresshud", version.ref = "progress_hud_version"}
avilibrary = { group = "com.wang.avi", name = "library", version.ref = "wang_avi_version"}
azure-notification-handler = { group = "com.microsoft.azure", name = "azure-notifications-handler", version.ref = "microsoft_notification_handler_version"}
accessibility-tools = { group = "com.novoda", name = "accessibilitools", version.ref = "novoda_accessibility_version"}

settings.gradle.kts中的仓库配置

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

        maven (url = "https://jitpack.io")
        maven (url = "https://dl.bintray.com/microsoftazuremobile/SDK")
        maven (url =  "https://dl.bintray.com/81813780/maven")
    }
}

错误输出(运行androidDependencies任务)

> Could not find com.novoda:accessibilitools:1.6.0.
  Required by:
      project :app
> Could not find com.kaopiz:kprogresshud:1.2.0.
  Required by:
      project :app
> Could not find com.wang.avi:library:2.1.3.
  Required by:
      project :app
> Could not find com.microsoft.azure:azure-notifications-handler:3.5.1.
  Required by:
      project :app

这些自定义仓库在旧的build.gradle中可以正常工作,现在转成KTS版本后失效,请问问题出在哪里?


解决建议

1. 核心问题:Bintray仓库已停止服务

你配置的两个dl.bintray.com仓库早在2021年就已关闭,这是依赖无法解析的主要原因:

  • https://dl.bintray.com/microsoftazuremobile/SDK:微软Azure的旧仓库已迁移
  • https://dl.bintray.com/81813780/maven:第三方个人仓库已失效

2. 针对每个依赖的修复方案

  • com.novoda:accessibilitools:1.6.0:该依赖已同步到Maven Central,无需额外仓库,确保mavenCentral()在仓库列表中即可
  • com.kaopiz:kprogresshud:1.2.0:改用Jitpack仓库,确认https://jitpack.io已配置,同时修正toml配置为:
    custom-progressindicator = { group = "com.github.kaopiz", name = "kprogresshud", version = "1.2.0"}
    
  • com.wang.avi:library:2.1.3:同样迁移到了Jitpack,修正toml配置为:
    avilibrary = { group = "com.github.wangjiegulu", name = "AVLoadingIndicatorView", version = "2.1.3"}
    
  • com.microsoft.azure:azure-notifications-handler:3.5.1:微软已将该依赖迁移到Maven Central,直接移除对应的Bintray仓库即可,同时确认版本号是否正确

3. 其他检查项

  • 确认libs.versions.toml中version.ref对应的版本号和旧build.gradle完全一致,无拼写错误
  • 执行./gradlew clean build --refresh-dependencies强制刷新依赖缓存,避免旧缓存干扰

内容的提问来源于stack exchange,提问作者DJ-DOO

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 23:36:04