2015-02-24 7 views
17

Ich bin neu in Android Studio, wenn ich Android-Anwendung synchronisieren, habe ich Fehler.Kann getBootClasspath() nicht aufrufen, bevor setTargetInfo() heißt

C:\Users\Mansukh\Desktop\layout\MaterialDesignLibrary-master\MaterialDesign\build.gradle 

Error:(97, 0) Cannot call getBootClasspath() before setTargetInfo() is called. 

Bitte jemand sagen mir, was Fehler bedeutet und was die Lösung für diesen Fehler ist. Ich versuche, Problem im Internet zu finden, aber ich bin nicht in der Lage, eine bestimmte Lösung zu bekommen.

Hier ist meine Gradle.build Datei.

apply plugin: 'com.android.library' 
apply plugin: 'com.github.dcendents.android-maven' 
apply plugin: 'com.jfrog.bintray' 

android { 
    compileSdkVersion 19 
    buildToolsVersion '20.0.0' 

    sourceSets { 
     main { 
      manifest.srcFile 'AndroidManifest.xml' 
      java.srcDirs = ['src'] 

      resources.srcDirs = ['src'] 
      aidl.srcDirs = ['src'] 

      renderscript.srcDirs = ['src'] 

      res.srcDirs = ['res'] 
      assets.srcDirs = ['assets'] 
     } 
     androidTest.setRoot('tests') 
    } 

    defaultConfig { 
     minSdkVersion 8 
     targetSdkVersion 21 
     versionCode 6 
     versionName '1.4' 
    } 
} 

ext.siteUrl = 'https://github.com/navasmdc/MaterialDesignLibrary' 
ext.issueUrl = 'https://github.com/navasmdc/MaterialDesignLibrary/issues' 
ext.gitUrl = 'https://github.com/navasmdc/MaterialDesignLibrary.git' 

bintray { 
    user = hasProperty('BINTRAY_USER') ? BINTRAY_USER : "navasmdc" 
    key = hasProperty('BINTRAY_KEY') ? BINTRAY_PASSWORD : "" 

    configurations = ["archives"] 
    pkg { 
     repo = 'maven' 
     name = 'MaterialDesignLibrary' 
     desc = 'This is a library with components of Android L to you use in android 2.2' 
     websiteUrl = siteUrl 
     issueTrackerUrl = issueUrl 
     vcsUrl = gitUrl 
     licenses = ['Apache-2.0'] 
     labels = [] 
     publicDownloadNumbers = true 
    } 
} 

dependencies { 
    compile 'com.nineoldandroids:library:2.4.+' 
    compile 'com.android.support:support-v4:21.+' 
} 

install { 
    repositories.mavenInstaller { 
     pom { 
      project { 
       packaging 'aar' 
       name 'MaterialDesignLibrary' 
       url siteUrl 
       licenses { 
        license { 
         name 'The Apache Software License, Version 2.0' 
         url 'http://www.apache.org/licenses/LICENSE-2.0.txt' 
        } 
       } 
       developers { 
        developer { 
         id 'navasmdc' 
         name 'Iván Navas' 
         email '[email protected]' 
        } 
       } 
       scm { 
        connection gitUrl 
        developerConnection gitUrl 
        url siteUrl 
       } 
      } 
     } 
    } 
} 

task sourcesJar(type: Jar) { 
    from android.sourceSets.main.java.srcDirs 
    classifier = 'sources' 
} 

task javadoc(type: Javadoc) { 
    source = android.sourceSets.main.java.srcDirs 
    classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) 
} 

task javadocJar(type: Jar, dependsOn: javadoc) { 
    classifier = 'javadoc' 
    from javadoc.destinationDir 
} 

artifacts { 
    archives javadocJar 
    archives sourcesJar 
} 

task findConventions << { 
    println project.getConvention() 
} 

Antwort

54

dabei um einen Fehler in Gradle 1.1 .0 Plugin wie hier beschrieben: Issue 152811. Fix ist bereits released

Lösung ist Plugin Version auf 1.1.1 oder höher zu ändern (derzeit verfügbare Version ist 1.1.2). classpath 'com.android.tools.build:gradle:1.1.2'

aktualisieren

Es ist eine andere ähnliche Fehler Android Gradle Plugin 1.1.0 breaks Javadoc tasks, die in 1.2.2 Version fixiert ist.

+0

Vielen Dank für das Hinweis auf dieses Gradle Problem. Das hat meinen Build repariert! :) – ptitvinou

+1

Arbeitete für mich :) –

+0

Dieser hat mir geholfen. Vielen Dank. –

6

finde ich einige Lösung dieses versuchen, wenn Arbeit

ändern sich in gradle Datei

task androidJavadocs(type: Javadoc) { 
source = android.sourceSets.main.java.srcDirs 
ext.androidJar = "${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar" 
classpath += files(ext.androidJar) 
} 

Above Code ersetzen durch diese eine

task javadoc(type: Javadoc) { 
    source = android.sourceSets.main.java.srcDirs 
    classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) 
} 
+0

Perfekt, das war was ich brauchte. – Simon