J'essaie de changer l'emplacement du fichier AndroidManifest.xml lorsque j'utilise la version expérimentale du plugin Gradle version 0.7.x. La raison pour cela est que je génère le fichier (comme il n'y a pas de remplaçant manifeste/remplaçant de propriété dans le plugin expérimental) donc je ne veux pas un fichier de sortie avec les sources.Comment puis-je déplacer le fichier AndroidManifest.xml avec le plug-in expérimental Gradle 0.7.x?
Mon application 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
}
}
Le dessus configure bien, mais lorsque je tente de construire je reçois:
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.`
Je ne peux pas sembler changer la valeur par défaut manifeste « propriété » du tout , quelqu'un a eu de la chance?
ne fonctionne pas pour moi (se plaint encore de test/app/src/main/AndroidManifest.xml non existant) même quand BuildDir est autre chose. Gradient la version expérimentale 0.7.2 avec gradle 2.10? –
Mon cas de test était avec le répertoire = étant en dehors de la structure du projet et existant avant le début de l'évaluation. (spécifiquement, "../../otherSource/src/main") Quand je le pointe vers quelque chose comme "outputs/manifest" et que j'ai la tâche de l'assembler dans ce répertoire, il échoue. J'ai essayé de mettre ma tâche à faire au début du processus, mais il rechigne. 'project.afterEvaluate { build.dependsOn mergeManifest }' Je pense que le fichier doit exister très tôt, mais je ne sais pas trop comment le faire. –
Ah, merci pour le commentaire très tôt - maintenant je l'ai eu, en faisant androidDebug androidRelease dépend de createManifest enfin faire la tâche checkManifest regarder le bon fichier –