【问题标题】:Configuration with name 'compileClasspath' not found找不到名称为“compileClasspath”的配置
【发布时间】:2018-02-08 11:59:11
【问题描述】:

当我迁移到 com.android.tools.build:gradle:3.0.0-beta3 和 Gradle 4.1 时,我看到以下错误:

原因:org.gradle.api.artifacts.UnknownConfigurationException:找不到名为“compileClasspath”的配置。 在 org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer.createNotFoundException(DefaultConfigurationContainer.java:123) 在 org.gradle.api.internal.DefaultNamedDomainObjectCollection.getByName(DefaultNamedDomainObjectCollection.java:229) 在 org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer.getByName(DefaultConfigurationContainer.java:113) 在 org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer.getByName(DefaultConfigurationContainer.java:48) 在 com.android.build.gradle.internal.LintGradleProject$ProjectSearch.getProject(LintGradleProject.java:884) 在 com.android.build.gradle.internal.LintGradleProject$ProjectSearch.getProject(LintGradleProject.java:996) 在 com.android.build.gradle.internal.LintGradleProject$ProjectSearch.getProject(LintGradleProject.java:785) 在 com.android.build.gradle.internal.LintGradleClient.createLintRequest(LintGradleClient.java:193) 在 com.android.tools.lint.LintCliClient.run(LintCliClient.java:151) 在 com.android.build.gradle.internal.LintGradleClient.run(LintGradleClient.java:209) 在 com.android.build.gradle.tasks.Lint.runLint(Lint.java:365) 在 com.android.build.gradle.tasks.Lint.lintSingleVariant(Lint.java:335)


这是我的目录结构:

android-db
  /db
    /build.gradle
  settings.gradle
  /android-common
    build.gradle
    /common
        build.gradle

android-db/db/build.gradle 如下:

buildscript {
    repositories {
        google()
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0-beta3'
    }
}

apply plugin: 'com.android.library'

android {
    compileSdkVersion 25
    buildToolsVersion '25.0.3'

    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    lintOptions {
        abortOnError false
    }
}

repositories {
    jcenter()
    maven { url "https://jitpack.io" }
    google()
}

def jenkinsBuildNumber = {
    System.getenv().BUILD_NUMBER?.toInteger() ?: 999999
}

// Change this when we upgrade the library version
def buildVersion = {
    '1.0' + "." + jenkinsBuildNumber()
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
    implementation 'io.reactivex.rxjava2:rxjava:2.0.1'
    implementation project(path: ':android-common:common', configuration: 'default')

    androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    testImplementation 'junit:junit:4.12'
    testImplementation "org.robolectric:robolectric:3.0"
    implementation 'com.annimon:stream:1.1.5'
    implementation 'com.jakewharton.timber:timber:4.5.1'
    implementation 'com.google.code.gson:gson:2.4'
    implementation 'com.squareup.retrofit:retrofit:1.9.0'
} 

android-db/android-common/common/build.gradle 如下:

buildscript {
    repositories {
        jcenter()
        google()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0-beta3'
    }
}

apply plugin: 'com.android.library'

android {
    compileSdkVersion 25
    buildToolsVersion '25.0.3'

    defaultConfig {
        minSdkVersion 15
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    lintOptions {
        abortOnError false
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    packagingOptions {
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/NOTICE'
    }

    dataBinding {
        enabled = true
    }
}

repositories {
    jcenter()
    maven { url "https://jitpack.io" }
    google()
}


def jenkinsBuildNumber = {
    System.getenv().BUILD_NUMBER?.toInteger() ?: 999999
}

// Change this when we upgrade the library version
def buildVersion = {
    '1.0' + "." + jenkinsBuildNumber()
}

ext {
    supportLibVersion = '25.3.1'
    playServicesVersion = '10.2.6'
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')

    compile "com.android.support:support-v4:${supportLibVersion}"
    compile "com.android.support:appcompat-v7:${supportLibVersion}"
    compile "com.google.android.gms:play-services-maps:${playServicesVersion}"
    compile 'com.android.databinding:library:1.3.1'
    compile 'com.android.databinding:adapters:1.3.1'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'org.jsoup:jsoup:1.9.2'
    compile 'com.jakewharton.timber:timber:4.5.1'
    compile 'com.squareup:seismic:1.0.2'
    compile 'org.greenrobot:eventbus:3.0.0'
    compile 'com.google.code.gson:gson:2.4'

    compile "com.android.support:recyclerview-v7:${supportLibVersion}"
    compile 'javax.inject:javax.inject:1@jar'
    compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
    compile 'io.reactivex.rxjava2:rxjava:2.0.1'


    // Unit testing dependencies
    testCompile 'junit:junit:4.12'
    testCompile 'org.mockito:mockito-core:1.10.19'
    // Set this dependency if you want to use the Hamcrest matcher library
    //androidTestCompile 'org.hamcrest:hamcrest-library:1.3'
    // more stuff, e.g., Mockito
    testCompile "org.robolectric:robolectric:3.3"
}

【问题讨论】:

  • 这里有同样的错误。它看起来与 lint 相关

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


【解决方案1】:

今天我解决了同样的问题!我花了一个多星期的时间试图找到解决方案。 简而言之,Gradle 的 Lint-plugin 隐含地假设您有以下部分

buildscript {
    repositories {
        jcenter()
        google()
    }

    dependencies {
        classpath "com.android.tools.build:gradle:$gradlePluginVersion"
    }
}

在您的根级 build.gradle 文件中。只需将公共部分从您的脚本移至根级脚本即可。

【讨论】:

  • 您从哪里得知 Lint 插件在根 build.gradle 中需要此部分?
  • 如果您的意思是文档,那么我没有在其中找到任何内容。我阅读了插件的来源并发现了这一点。除了清洁项目的实验证明了我的理论。
  • 我也被这个问题困住了;但这个解决方案对我不起作用。到目前为止,很难过 - 你在哪里找到插件的来源?
  • 我的 build.gradle 中已经有了这段代码。但是,我仍然收到此错误
【解决方案2】:

只需将 compileClasspath 作为 configuration 名称添加到您的 build.gradle

configurations {
    compileClasspath
}
buildscript {
    repositories {
        ...
    }

    dependencies {
        ...
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-17
    • 1970-01-01
    • 2015-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-14
    相关资源
    最近更新 更多