无法获得财产' compileSdkVersion'在额外的属性扩展,因为它不存在打开文件

时间:2017-12-05 12:23:25

标签: android android-studio android-gradle build.gradle gradle-plugin

我将从GitHub下载的项目作为模块导入到我的Android Studio项目中。 "导入模块......"向导工作正常,但当Adroid Studio尝试重建项目时,它返回给我这个错误:

Cannot get property 'compileSdkVersion' on extra properties extension as it does not exist Open File

错误与" build.gradle"中的这一行有关。导入模块的文件:

compileSdkVersion rootProject.compileSdkVersion

我试图添加"分机"项目中的部分" build.gradle"像这样:

ext {
    compileSdkVersion 26
}

但是这样我收到了一个新错误:

Gradle DSL method not found: 'compileSdkVersion()' Possible causes: ... 

4 个答案:

答案 0 :(得分:22)

顶级文件中使用:

ext {
    compileSdkVersion = 26
}

module/build.gradle文件中使用:

android {
  compileSdkVersion rootProject.ext.compileSdkVersion
  ...
}

答案 1 :(得分:0)

另一种方式:

您的build.gradle顶级模块中

ext {
    minSdk = 21
    targetSdk = 29
    compileSdk = 29
    buildTools = '29.0.3'
}

您在 app 模块中的build.gradle

android {
    def buildConfig = rootProject.extensions.getByName("ext")

    compileSdkVersion buildConfig.compileSdk
    buildToolsVersion buildConfig.buildTools
    defaultConfig {
        minSdkVersion buildConfig.minSdk
        targetSdkVersion buildConfig.targetSdk
    }
    // ...
}

答案 2 :(得分:-1)

在build.gradle中,您需要在android标记下编写compilesdkversion,如下例所示:

android { .. compileSdkVersion 26 // 26 is an example ..}

顺便说一下。您可以将该模块构建为库,然后将其作为.aar文件导入到项目中。

答案 3 :(得分:-1)

将.gradle android部分更改为此

android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "your App id"
        minSdkVersion 18
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}