90
votes

Dans Android Studio Arctic Fox Canary 8, le niveau d'application Build.gradle ne génère pas la section «AllProjects» et provoque une erreur lorsqu'il est ajouté manuellement

Lors de la création d'un nouveau projet dans Android Studio Arctic Fox Canary 8, il s'agit du niveau d'application build.gradle

 problem occurred evaluating root project 'My Application'.
> Build was configured to prefer settings repositories over project repositories but repository 'Google' was added by build file 'build.gradle'

Lors de la création du même nouveau projet dans le Studio Android 4.1.2, le Le fichier Build.Gradle de l'application est le suivant:

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    ext.kotlin_version = "1.3.72"
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:4.1.2"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

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

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

L'une des bibliothèques que j'utilise nécessite le allprojects

i essayé manuellement d'ajouter la section allProjects dans Canary 8, a reçu cette erreur:

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:7.0.0-alpha08"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.30"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

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

Pourquoi le AllProjects dans Android était-il Studio Canary 8 a été supprimé et comment puis-je l'ajouter pour que je puisse utiliser les bibliothèques?


0 commentaires

7 Réponses :


51
votes

dans Settings.gradle Il suffit de commenter le bloc entier

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        jcenter() // Warning: this repository is going to shut down soon
    }
}


1 commentaires

Cela ne fonctionne pas. Lorsque je commençai ce bloc, j'obtiens: Impossible de résoudre: AndroidX.AppCOMPAT: AppCompat: 1.2.0 n'a pas réussi à résoudre: com.google.android.material: Matériel: 1.3.0 n'a pas réussi à résoudre: AndroidX. UI-test-junit4: 1.0.0-beta01 n'a pas réussi à résoudre: AndroidX.Test.espresso: Espresso-core: 3.3.0 n'a pas réussi à résoudre: AndroidX. .test.ext: Junit: 1.1.2 (+5 plus) Veuillez supprimer les usages de jCenter () Maven Repository de vos scripts de construction et migrez votre version vers d'autres référentiels Maven.



229
votes

dans settings.gradle Vous pouvez ajouter les référentiels que vous souhaitez ajouter au projet

dependencyResolutionManagement {
   repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
   repositories {
      google()
      mavenCentral()
      jcenter()
      maven { url "https://maven.xyz.com" }
    }
}


0 commentaires

4
votes

Gardez simplement cette ligne dans Settings.gradle

  • Inclure ': app' (mettre en première ligne)
  • Commentaire le reste du code le cas échéant.

  • 1 commentaires

    Saverne de la vie, tnx.



    43
    votes

    Accédez à setting.gradle et remplacez la ligne:

    repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
    

    par:

    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    

    C'est un Gradle Paraming qui permet à cela de fonctionner.


    2 commentaires

    Après avoir appliqué ce paramètre, Project Sync a réussi. J'utilise Android Studio Arctic Fox | 2020.3.1 Patch 1 (pour ARM) OpenJDK 64 bits serveur VM par JetBrains S.R.O. MacOS 11.5.2 sur un M1 MacBook Pro.


    Pouvez-vous nous dire quelle est la différence entre les deux?



    28
    votes

    Dans la nouvelle version d'Android, fournissez une nouvelle façon de définir vos référentiels. Avant cette version, nous avons utilisé build.gradle (niveau de projet) fichier pour définir les référentiels. Vous devez maintenant écrire ensuite dans le fichier settings.gradle . C'est pourquoi il entre en collision avec le plugin Gradle et génére ce message d'erreur:

    plugins {
        id 'com.android.application'
        id 'kotlin-android'
        id 'com.google.gms.google-services'// If you use
    }
    

    Nous pouvons le résoudre de deux manières possible >

    Utilisez la manière précédente: ne pas utiliser dépendanceResolutionManagement pour les référentiels dans settings.gradle fichier

    Continuez simplement les paramètres.

    Modifiez ou ajoutez la ligne en haut de la build.gradle (niveau du module)

    buildscript {
        repositories {
            google()
            mavenCentral()
        }
        dependencies {
            classpath "com.android.tools.build:gradle:7.0.0"
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.21"
            classpath 'com.google.gms:google-services:4.3.10' // If you use
        }
    }
    
    task clean(type: Delete) {
        delete rootProject.buildDir
    }
    

    Solution 2: p>

    Utilisez une nouvelle façon: utiliser DependencyResolutionManagement pour les référentiels dans settings.gradle fichier

    Continuez simplement les paramètres.

    Conserver Build.gradle (niveau du module) comme précédent:

    dependencyResolutionManagement {
        repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
        repositories {
            google()
            mavenCentral()
        }
    }
    rootProject.name = "YourAppName"
    include ':app'
    

    J'espère que vous surmontez votre problème.


    1 commentaires

    Je voulais juste savoir que c'est une bonne façon de le faire? Je voulais ajouter cette dépendance 'com.github.philjay: mpandroidchart: v3.1.0' qui nécessite maven {url ' jitpack.io '} Repositaires. Son wokring .... je l'ai directement ajouté dans setting.gradle -> DependencyResolutionManagement {RepositoriesMode.Set (RepositoriesMode.fail_on_project_repos) Repositaires {Google () mavencentral () jCenter () Maven {url ' jitpack.io '}}}



    2
    votes

    Google a apporté quelques modifications dans l'étiquette de projet Gradle.

    Vous pouvez résoudre ce problème en supprimant toute la configuration de l'étiquette de projet sur le fichier de set Code dans le fichier gradle et tous vos plugins code dans le fichier setting.gradle. Comme ci-dessous.

        pluginManagement {
        repositories {
            gradlePluginPortal()
            google()
            mavenCentral()
        }
        plugins {
            id 'com.android.application' version '7.1.0-alpha03'
            id 'com.android.library' version '7.1.0-alpha03'
            id 'org.jetbrains.kotlin.android' version '1.5.10'
        }
    }
    dependencyResolutionManagement {
        repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
        repositories {
            google()
            mavenCentral()
        }
    }
    rootProject.name = "MVVMDEMO"
    include ':app'
    


    0 commentaires

    8
    votes

    AllProjects {} Le bloc est supprimé de la version mise à jour de Gradle. Ainsi, dans Settings.gradle, vous pouvez ajouter les référentiels que vous souhaitez télécharger et ajouter au projet xxx


    0 commentaires