2016-05-24 5 views
0

mit habe ich eine Aufgabe javadocs zu erstellen:android.compileSdkVersion fehlt, während eine benutzerdefinierte Plug-Aufgabe

Task tCreateJavadocs = addTask(project, 'createJavadocs', Javadoc.class) 
tCreateJavadocs.configure{ 
source = android.sourceSets.main.java.srcDirs 
    classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) 
failOnError false 
} 

Jetzt habe ich ein eigenes Plugin, wo ich alle meine Aufgaben zu bewegen und eine Bibliothek als Folge erstellen, so Ich kann die Bibliothek auf alle Projekte anwenden. Also, ich möchte diese Aufgabe in ein benutzerdefiniertes Plugin-Projekt verschieben. schreibe ich die Aufgabe in der Projekt benutzerdefinierte Plugin wie folgt:

Task tCreateJavadocs = addTask(project, 'createJavadocs', Javadoc.class) 
tCreateJavadocs.configure{ 
source = project.android.sourceSets.main.java.srcDirs 
    classpath += project.files(project.android.getBootClasspath().join(File.pathSeparator)) 
failOnError false 
} 

Wenn ich dies mit einem Android-Studio-Projekt kompilieren, erhalte ich Fehler ‚Ursache: android.compileSdkVersion fehlt‘.

Antwort

2

Ich würde sagen, Sie versuchen, Sachen zu verwenden, die noch nicht festgelegt ist.
Entweder wenden Sie später Plugin, nachdem Sie die compileSdkVersion festgelegt haben, oder vielleicht Konfiguration Ihrer Aufgabe verzögern mit afterEvaluate, so dass andere Konfigurationen sind bereits getan, oder, wenn möglich nur Bewertung des problematischen Wert mit einem Verschluss verzögern.

Letzte Option ist wahrscheinlich die beste. Finden Sie heraus, welche Linie ist problematisch und schauen, ob es eine Closure stattdessen geben kann, wie jene, in der Regel träge ausgewertet werden.

1

Wie oben in der Antwort vorgeschlagen, fügte ich diese:

project.android.compileSdkVersion = 'android-23' 
project.android.buildToolsVersion = '23.0.1' 

und Projekt

0

baut Wenn ich meine Aufgabendefinition innerhalb project.afterEvaluate Schließung schreiben, ist das Problem behoben.

Verwandte Themen