Android 빌드 시스템으로 개미에서 그라디언트로 전환하려고합니다. 내가 해결할 방법을 알 수없는 한 가지 문제는 빌드 유형별로 다른 설정 파일을 사용한다는 것입니다.각 Android Studio Gradle 빌드 유형별로 다른 설정 파일 복사
프로젝트 루트에는 config
폴더가 있는데 여기에는 디버그 용 파일과 릴리스 빌드 용 파일이 있습니다. 프로젝트를 빌드 할 때 해당 파일을 자원 폴더에 복사해야합니다.
간체 build.gradle : 나는
def configFile = 'XXX'
task copyConfigFileTask(type: Copy) {
println "-> using config file $configFile"
from 'config/$configFile'
into 'res/values'
rename {
fileName -> 'config.xml'
}
outputs.upToDateWhen {
false
}
}
assembleDebug.dependsOn {
copyConfigFileTask { configFile = 'config_release.xml' }
copyConfigFileTask.execute()
}
같은 다른 일을 시도하지만 정말 작동하지 않습니다
android {
buildTypes {
debug {
minifyEnabled false
// copy config/config_debug.xml to res/values/config.xml
}
release {
minifyEnabled true
...
// copy config/config_release.xml to res/values/config.xml
}
}
...
}
. 그렇게 간단하고 일반적인 임무가 Gradle과 너무 복잡하다고 나는 상상할 수 없습니다.
도움을 주시면 감사하겠습니다.
또는 모든 비 릴리스 버전의 기본값으로'src/main/res/values / config.xml'의 디버그 버전을 사용하십시오. – ianhanniballake
@ianhanniballake : 예, 아마도 그렇게 설정할 수도 있지만, OP의 원래 설정을보다 면밀히 비추고 싶었습니다. – CommonsWare
나는 이클립스에서 프로젝트를 가져 왔으므로 나는 아직도 그 구조를 가지고있다. 나는 sourceSets {main {res.srcDirs = [ 'res'] ... '로'build.gradle'에서 자원 디렉토리를 정의합니다. 나는 단지'res/release/values / config.xml'에 릴리스 구성을 추가하려고 시도했지만, 작동하지 않는 것 같습니다. 전체 프로젝트 구조를 변경하지 않고이를 수행 할 수있는 방법이 있습니까? – SimonSays