Android Studio Gradle:请从您的构建脚本中删除对 `jcenter()` Maven 存储库的使用/JCenter 生命周期结束

Android Studio Gradle: Please remove usages of `jcenter()` Maven repository from your build scripts / JCenter is at end of life

在Android Studio 4.2 中有一个警告:

buildscript {
    ext.kotlin_version = '1.5.0'

    repositories {
        google()
        //jcenter()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.2.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

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

如果我删除 jcenter() 然后它找不到我的应用程序项目的一些依赖项:

   > Could not find org.koin:koin-core:2.0.1.
     Required by:
         project :app
   > Could not find org.koin:koin-androidx-scope:2.0.1.
     Required by:
         project :app
   > Could not find org.koin:koin-androidx-viewmodel:2.0.1.
     Required by:
         project :app
   > Could not find com.google.ads.mediation:chartboost:8.1.0.0.
     Required by:
         project :app

代替 jcenter() 我添加了 mavenCentral()

mavenCentral() 移到 jcenter() 上方。

对您的项目进行 clean/build。

注释掉jcenter()

通过将 mavenCentral() 移动到 jcenter() 之上,mavenCentral() 现在成为所有非 Google 工件的主要存储库。通过清理和构建,所有工件现在都移动到 mavenCentral()

我不得不查一下并尝试一下。在我删除 jcenter() 之后,我从一头雾水到能够再次为学校构建我的最终项目。

对于 koin,将组 ID 从 org.koin 更改为 io.insert-koin - 后者发布在 maven central.

对于 chartboost,您可以使用以下存储库:

maven {
    url "https://dl.bintray.com/google/mobile-ads-adapters-android/"
}

另请注意,还有较新的版本,例如 koin 2.2.2 / 3.0.1 和 chartboost 8.2.0.0。旧版本可能不会在非 jcenter 存储库中重新发布。

mvnrepository 是一个很好的定位包的服务。

在项目文件夹树中找到所有 build.gradle 文件,打开它们并将 jcenter() 替换为 mavenCentral()。它大部分时间对我有用。

希望对您有所帮助

  1. 转到 App/Gradle Scripts/build.gradle (项目:---)
  2. 在构建脚本{}和所有项目存储库中更改jcenter()
  3. 并立即同步。

这是以前的样子。

buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.2.1'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

及之后。

  buildscript {
    repositories {
        google()
        mavencentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.2.1'
    }
}

allprojects {
    repositories {
        google()
        mavencentral()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

只需注释掉 jcenter() 就会有所帮助, mavencentral() 已经高于 jcenter.

这可能会对某人有所帮助。

allprojects {
        repositories {
            ...
            maven { url "https://jitpack.io" }
            ...
        }
    }

我用这个来解决:

> Could not find com.github.parse-community.Parse-SDK-Android:parse:1.26.0.
     Required by:
         project :app

有趣的是,AndroidStudio 项目模板仍然将 jcenter() 的引用添加到 gradle,但是一旦项目尝试构建它,就会要求您将其删除。

我只是将它从 gradle 文件中删除,然后它就可以工作了。

我在使用 Android Studio Artic Fox Beta - 3 时遇到了同样的错误,但在将 Android Studio 更改为 Canary Build 之后错误消失了

我做的解决方案是更改build:gradle版本:

dependencies {
        classpath("com.android.tools.build:gradle:4.2.2")
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }

所以这里有两个问题。

  1. 首先,我们需要在所有项目中将MavenCentral移到jCenter之上

  2. 其次,Android构建工具版本需要升级到4.2.0及以上。由于 Android 内部构建工具依赖项将转到 jCenter

    依赖关系{ 类路径("com.android.tools.build:gradle:4.2.0") }

它应该有效