代码之家  ›  专栏  ›  技术社区  ›  user924

Build.gradle:对“project”的访问超出了其访问权限

  •  3
  • user924  · 技术社区  · 6 年前

    常数.gradle

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

    构建.gradle 应用程序的

    apply plugin: 'com.android.application'
    apply from: '../constants.gradle'
    
    android {
    
        compileSdkVersion project.ext.compileSdkVersion
        buildToolsVersion project.ext.buildToolsVersion
    
        defaultConfig {
        ...
    

    enter image description here

    这里怎么了?

    enter image description here

    另外,接下来的几行都很好 defaultConfig

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

    enter image description here

    classpath 'com.android.tools.build:gradle:3.2.0' , distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip

    似乎它没有显示这样的警告与以前的毕业生或工作室

    1 回复  |  直到 6 年前
        1
  •  16
  •   ParkerM Juliet    4 年前

    因为当你使用 project android 范围,Gradle试图找到 .

    List of project candidates reported by IDE

    让你的常数超出 安卓 范围。

    def compileSdkVersion = project.ext.compileSdkVersion
    def buildToolsVersion = project.ext.buildToolsVersion
    
    android {
    
        compileSdkVersion compileSdkVersion
        buildToolsVersion buildToolsVersion
        ...
    

    constants.gradle :

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

    把它用在你的生活中 build.gradle 比如:

    apply plugin: 'com.android.application'
    apply from: '../constants.gradle'
    
    android {
    
        compileSdkVersion buildVersions.compileSdkVersion
        buildToolsVersion buildVersions.buildToolsVersion
        ...