web-dev-qa-db-fra.com

Build.gradle: l'accès au «projet» dépasse ses droits d'accès

constants.gradle

project.ext {
    minSdkVersion = 19
    compileSdkVersion = 28
    targetSdkVersion = 28
    buildToolsVersion = '28.0.3'
    supportLibraryVersion = '28.0.0'
}

build.gradle de l'application

apply plugin: 'com.Android.application'
apply from: '../constants.gradle'

Android {

    compileSdkVersion project.ext.compileSdkVersion
    buildToolsVersion project.ext.buildToolsVersion

    defaultConfig {
    ...

enter image description here

Qu'est-ce qui ne va pas ici?

Bien que cela fonctionne bien pour les bibliothèques du même projet:

enter image description here

De plus, tout va bien pour les lignes suivantes dans le bloc defaultConfig

minSdkVersion project.ext.minSdkVersion
targetSdkVersion project.ext.targetSdkVersion

enter image description here

Android Studio 3.2, classpath 'com.Android.tools.build:gradle:3.2.0', distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.Zip

Semble qu'il n'a pas montré de tels avertissements avec le précédent Gradle ou Studio

14
user924

C'est juste un avertissement et ça devrait marcher.

Parce que lorsque vous utilisez project à l'intérieur de la portée Android, Gradle essaie de trouver l'emplacement d'appel de project.

enter image description here

Vous avez deux options pour corriger cet avertissement.

Obtenez vos constantes en dehors de l'étendue Android.

def compileSdkVersion =  project.ext.compileSdkVersion
Android {
compileSdkVersion compileSdkVersion
...

Ou mettez à jour votre constants.gradle:

ext {
    buildVersions = [
      minSdkVersion : 19
      compileSdkVersion : 28
      targetSdkVersion : 28
      buildToolsVersion : '28.0.3'
      supportLibraryVersion : '28.0.0'
    ]
}

et utilisez-le dans votre build.gradle comme:

apply plugin: 'com.Android.application'
apply from: '../constants.gradle'

Android {

    compileSdkVersion buildVersions.compileSdkVersion
    buildToolsVersion buildVersions.buildToolsVersion
15
Saeed Masoumi