Android Studio/gradle:"无法创建'LibraryPlugin'类型的插件"

Roa*_*tad 7 gradle android-studio

我在Android Studio中有两个模块.

主要是应用程序,Sub是库模块.Sub compile project(':Sub')在gradle脚本中从Main 引用.这在从Android Studio运行时有效.但是当从命令行运行时,gradlew说:

Could not create plugin of type 'LibraryPlugin'.
Caused by: java.lang.NoClassDefFoundError: org/gradle/api/artifacts/result/ResolvedComponentResult 
Run Code Online (Sandbox Code Playgroud)

这是Main的build.gradle文件中的重要部分:

apply plugin: 'android'

buildscript {
    repositories {
        mavenCentral()
        maven {
            url 'https://oss.sonatype.org/content/repositories/snapshots/'
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.9.+'
    }
}

repositories {
    mavenCentral()
    maven {
        url 'https://oss.sonatype.org/content/repositories/snapshots/'
    }
}

task wrapper(type: org.gradle.api.tasks.wrapper.Wrapper) {
    gradleVersion = '1.11'
}

android {
    buildToolsVersion '19.0.3'
}


dependencies {
    compile 'com.android.support:support-v4:13.0.+'
    compile project (':Sub')
}
Run Code Online (Sandbox Code Playgroud)

Sub gradle文件或多或少相同,但有

apply plugin: 'android-library'
Run Code Online (Sandbox Code Playgroud)

而不是'android'

我已尝试使用gradle 1.9和1.10,但结果相同.

谁知道如何解决这个问题?

Ian*_*ton 4

验证您的依赖项是否包含classpath 'com.android.tools.build:gradle:0.9.+'在每个gradle.build文件中(或者只是将其放入基本文件中,而不在其他文件中声明它)。更新gradle/wrapper/gradle-wrapper.properties为指向 gradle 1.11:

distributionUrl=http\://services.gradle.org/distributions/gradle-1.11-all.zip
Run Code Online (Sandbox Code Playgroud)

如果您有 gradle-wrapper 的任何其他实例(例如,如果您最初自己创建了库项目,后来添加了示例应用程序),请验证所有实例是否已更新为指向同一版本(每个文件gradle-wrapper.properties)。