2017-09-06 92 views
1

我在Android Studio中有一个项目。我需要在这个项目中导入一个模块:https://github.com/square/android-times-square/ 这个包里有一个库和一个样本。我导入他们两个。 我下载.ZIP和Android Studio中做文件 - >新建 - >导入模块 而在此之后,我得到了graddle错误:未找到Gradle DSL方法:将模块导入到项目后的'compileSdkVersion()'

Error:(16, 0) Gradle DSL method not found: 'compileSdkVersion()' 
Possible causes: 
The project 'MyProject' may be using a version of the Android Gradle plug-in that does not contain the method 
(e.g. 'testCompile' was added in 1.1.0). 
Upgrade plugin to version 2.3.3 and sync project. The project 'MyProject' may be using a version of Gradle that does not contain the method. 
Open Gradle wrapper file. The build file may be missing a Gradle plugin. 
Apply Gradle plugin 

我点击了此错误消息中列出的所有链接。但它没有帮助。 Gradle脚本有什么问题? 我不明白为什么有这么多的文件的gradle和我需要修复(((

的build.gradle(MyProject的)

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.3.3' 

     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
    } 
} 

ext { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.2" 
    minSdkVersion 16 
    targetSdkVersion 25 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

task clean(type: Delete) { 
    delete rootProject.buildDir 
} 

的build.gradle(库哪一个)

apply plugin: 'com.android.library' 
apply plugin: 'checkstyle' 

task checkstyle(type: Checkstyle) { 
    configFile rootProject.file('checkstyle.xml') 
    source 'src/main/java' 
    ignoreFailures false 
    showViolations true 
    include '**/*.java' 

    classpath = files() 
} 

afterEvaluate { 
    if (project.tasks.findByName('check')) { 
    check.dependsOn('checkstyle') 
    } 
} 

android { 
    compileSdkVersion rootProject.ext.compileSdkVersion 
    buildToolsVersion rootProject.ext.buildToolsVersion 

    defaultConfig { 
    minSdkVersion rootProject.ext.minSdkVersion 
    } 


    lintOptions { 
    warning 'MissingTranslation' 
    textReport true 
    textOutput 'stdout' 
    } 
} 

dependencies { 
    testCompile deps.festandroid 
    testCompile deps.junit 
    testCompile deps.robolectric 
    testCompile deps.intellijannotations 
} 

apply from: rootProject.file('gradle/gradle-mvn-push.gradle') 

的build.gradle(样品)

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion rootProject.ext.compileSdkVersion 
    buildToolsVersion rootProject.ext.buildToolsVersion 

    compileOptions { 
    sourceCompatibility rootProject.ext.sourceCompatibilityVersion 
    targetCompatibility rootProject.ext.targetCompatibilityVersion 
    } 

    defaultConfig { 
    applicationId 'com.squareup.timessquare.sample' 
    minSdkVersion rootProject.ext.minSdkVersion 
    targetSdkVersion rootProject.ext.targetSdkVersion 
    versionCode 1 
    versionName '1.0.0' 
    } 

    lintOptions { 
    disable 'MissingTranslation' 
    } 
} 

dependencies { 
    compile project(':library') 
} 

的build.gradle(模块:APP)

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.2" 
    defaultConfig { 
     applicationId "com.myproject.myproject2" 
     minSdkVersion 16 
     targetSdkVersion 25 
     versionCode 1 
     versionName "1.0" 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 
    compile 'com.android.support:appcompat-v7:25.3.1' 
    compile 'com.android.support:design:25.3.1' 
    compile 'com.android.support.constraint:constraint-layout:1.0.2' 
    compile 'com.android.support:support-v4:25.3.1' 
    testCompile 'junit:junit:4.12' 
} 

settings.gradle

include ':app', ':sample', ':library' 

回答

4

Error:(16, 0) Gradle DSL method not found: 'compileSdkVersion()'

你不能在顶层文件使用此语法:

ext { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.2" 
    minSdkVersion 16 
    targetSdkVersion 25 
} 

相反,您可以使用此语法(请注意=

ext { 
    // The following are only a few examples of the types of properties you can define. 
    compileSdkVersion = 25 
    buildToolsVersion = "26.0.1" 
    ... 
} 
+0

谢谢。我更改了顶层文件(我只留下了compileSdkVersion和buildToolsVersion)。 – Evgenia

+0

我还更改了模块的gradle文件,因为选项rootProject.ext.minSdkVersion和rootProject.ext.targetSdkVersion导致新的错误(它们不存在)。我将它们改为数字。现在还有一个问题:错误:(46,1)评估项目':library'时发生问题。 >无法获取类型为org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler的对象的未知属性'deps'。 – Evgenia

+0

@Evgenia我的脚本就是一个例子。你也可以使用'minSdkVersion','targetSdkVersion',但是如上面所报告的那样,使用与'='相同的语法。 –

相关问题