我目前正在将我的
build.gradle
文件转换为 build.gradle.kts
。繁重的工作已经完成,我创建了一个版本目录 libs.versions.toml
文件来处理依赖关系管理。但是,我遇到一个问题,似乎它没有选择自定义 Maven 存储库,因为应用程序无法解决四个依赖项。
我的依赖如下:
//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) <-- not resolved
implementation(libs.apachecommons.text)
implementation(libs.custom.progressindicator) <-- not resolved
implementation(libs.decocharting)
implementation(libs.avilibrary) <-- not resolved
//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) <-- Not resolved
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)
突出显示的依赖项将添加到
.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")
}
}
您可以在此处查看自定义存储库网址。这些在旧的
build.gradle
中工作
谁能看出我做错了什么吗?
当我运行
androidDependencies
gradle 任务时,我得到以下输出:
> 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
accessibilitytools、wang 的 avi 库和 kprogresshud 是非常古老的库,最初托管在 jcenter 但现在不再可用。
与旧图书馆合作总是很困难。我的建议是从 github 下载源代码并尝试将它们集成到您的项目中(如果许可证允许)。当然,这会带来一些风险或代码调整。
对于 Microsoft 库,您可以在此处集成新库:https://github.com/Azure/azure-notificationhubs-android
希望这有帮助