我試圖改變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任務看起來正確的文件 –