Ich versuche, den Speicherort der AndroidManifest.xml-Datei zu ändern, wenn Sie das experimentelle Gradle-Plugin Version 0.7.x verwenden. Der Grund dafür ist, dass ich die Datei erzeuge (da es im Experimental-Plugin keine manifeste Merger/Property-Ersetzung gibt), also möchte ich keine Ausgabedatei zusammen mit den Quellen.Wie kann ich die Datei AndroidManifest.xml mit dem experimentellen Gradle-Plugin 0.7.x verschieben?
Meine app build.gradle:
apply plugin: "com.android.model.application"
def buildDir = project.buildDir
model {
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.myapp.android"
minSdkVersion.apiLevel 9
targetSdkVersion.apiLevel 23
versionCode 1
versionName "1.0"
}
sources {
main {
manifest {
source {
srcDirs = ["$buildDir"]
}
}
}
}
}
}
task createManifest {
doLast {
buildDir.mkdirs()
new FileOutputStream(new File(buildDir, "AndroidManifest.xml"))
}
}
tasks.all { task ->
if (task.name.startsWith('check') && task.name.endsWith('Manifest')) {
task.dependsOn createManifest
}
}
Die oben konfiguriert in Ordnung, aber wenn ich versuche, ich zu bauen:
A problem was found with the configuration of task ':app:checkDebugManifest'.
> File '/home/the_jk/source/test/app/src/main/AndroidManifest.xml' specified for property 'manifest' does not exist.`
Ich kann nicht die Standard-Manifest „Eigentum“ scheinen überhaupt zu ändern Hatte jemand Glück?
Ist für mich nicht (klagt noch über Test/app/src/main/AndroidManifest.xml nicht vorhanden) auch tho builddir ist etwas anderes. Gradle experimentelle Version 0.7.2 mit Gradle 2.10? –
Mein Testfall befand sich mit dem Verzeichnis = außerhalb der Projektstruktur und existierte vor der Auswertung. (speziell "../../otherSource/src/main") Wenn ich es auf etwas wie "outputs/manifest" zeige und die Aufgabe so eingerichtet habe, dass es in diesem Verzeichnis zusammengebaut wird, schlägt es fehl. Ich habe versucht, meine Aufgabe zu machen, es früh in dem Prozess zu tun, aber es macht einen Strich durch die Rechnung. 'project.afterEvaluate { build.dependsOn mergeManifest }' Ich denke, die Datei muss sehr früh existieren, nicht sicher, wie es passieren soll. –
Ah, vielen Dank für den sehr frühen Kommentar - jetzt habe ich es, machen AndroidDebug und AndroidRelease abhängig von createManifest schließlich die checkManifest Aufgabe auf die richtige Datei schauen –