我试图改变AndroidManifest.xml文件的位置,当使用实验gradle插件版本0.7.x.这样做的原因是我生成该文件(因为实验性插件中没有清单合并器/属性替换器),所以我不想将输出文件与源文件放在一起。如何使用实验gradle插件0.7.x移动AndroidManifest.xml文件?
我的应用程序的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
}
}
上述配置正常,但当我尝试建立我得到:
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.`
我似乎无法在所有更改默认清单“属性” ,谁有幸运?
不为我工作(仍然抱怨测试/应用/ src目录/主/ AndroidManifest.xml中不存在的),即使寿buildDir是另一回事。 gradle实验版0.7.2与gradle 2.10? –
我的测试用例是=目录在项目结构之外,并且在开始评估之前已经存在。 (具体来说,“../../otherSource/src/main”)当我将它指向“outputs/manifest”之类的东西,并将任务设置为在该目录中组装它时,它会失败。我已经尝试过让我的任务在整个过程中尽早完成,但它很虚弱。 'project.afterEvaluate { build.dependsOn mergeManifest }'我认为文件需要存在很早,不知道如何实现它。 –
嗯,感谢非常早期的评论 - 现在我明白了,使androidDebug和androidRelease依赖于createManifest最终让checkManifest任务看起来正确的文件 –