【问题标题】:Could not get unknown property 'supportLibraryVersion' for object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler无法为 org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler 类型的对象获取未知属性“supportLibraryVersion”
【发布时间】:2019-01-23 20:22:59
【问题描述】:

我在我的 android 项目中添加了一个外部库。 gradle 同步后出现以下错误:

错误:无法为 org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler 类型的对象获取未知属性“supportLibraryVersion”。

这是我添加的库的 build.gradle 文件:

apply plugin: 'com.android.library'

android {
    compileSdkVersion 26
    buildToolsVersion "28.0.3"

    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 26
        testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    sourceSets {
        main.java.srcDirs += 'src/main/base'
        main.java.srcDirs += 'src/main/api9'
        main.java.srcDirs += 'src/main/api14'
        main.java.srcDirs += 'src/main/api21'
        main.java.srcDirs += 'src/main/api23'
    }
}

dependencies {
    implementation "com.android.support:support-annotations:$supportLibraryVersion"
    implementation "com.android.support:support-v4:$supportLibraryVersion"

    // Tests
    testCompile 'junit:junit:4.12'
    androidTestCompile('com.android.support.test:runner:0.5') {
        exclude module: 'support-annotations'
    }
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2') {
        exclude module: 'support-annotations'
    }
}

supportLibraryVersion 在我的应用程序 gradle 文件中声明如下:

ext {
    supportLibraryVersion = '27.1.0'
}

我尝试在 gradle 文件中手动声明 supportLibraryVersion。

implementation "com.android.support:support-annotations: '27.1.0'"
implementation "com.android.support:support-v4:'27.1.0'"

然后出现如下错误:

ERROR: Failed to resolve: com.android
Affected Modules: library

【问题讨论】:

    标签: android android-gradle-plugin


    【解决方案1】:

    对于您的第一个问题,您没有在库的 build.gradle 文件中声明属性 $supportLibraryVersion。你需要像下面这样声明这个属性

    ext {
        supportLibraryVersion = '27.1.0'
    }
    

    对于您的第二个问题,您需要删除依赖版本周围的引号。所以你需要像下面这样重写依赖项-

    implementation "com.android.support:support-annotations:27.1.0"
    implementation "com.android.support:support-v4:27.1.0"
    

    【讨论】:

      【解决方案2】:

      静态定义时需要使用单引号。

      implementation 'com.android.support:support-annotations:27.1.0'
      implementation 'com.android.support:support-v4:27.1.0'
      

      【讨论】:

        猜你喜欢
        • 2020-01-02
        • 2020-04-15
        • 1970-01-01
        • 2021-12-19
        • 2018-09-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多