2

안드로이드 프로젝트를 위해 소스로 체크인하지 않고 대신 빌드 시스템에서 다운로드 할 수있는 자산이 있습니다. 나는 그들을 다운로드하고 gradle에서 추출하는 방법을 알아 냈지만, apk에 복사되지 않기 때문에 빌드 과정에서 너무 늦은 것처럼 보인다.Android Studio에서 gradle 빌드 중 자산 디렉토리에 자산을 추출하려면 어떻게해야합니까?

def assetsDir = new File(projectDir, 'src/main/assets') 

task extractAssets(type: Exec) { 

    def wd = assetsDir 
    def extractDir = 'extractedStuff' 

    outputs.dir "${wd}/${extractDir}" 

    workingDir wd 
    commandLine 'tar', 'xzf', 'assets-to-extract.tgz', extractDir 
} 

tasks.withType(JavaCompile) { 
    compileTask -> compileTask.dependsOn extractAssets 
} 

깨끗한 후에 처음 실행하면 애셋을 assets 디렉토리로 추출하지만 내 apk에는 포함시키지 않습니다. 그 후, 내가 구축 할 때마다 APK에 자산이 포함됩니다. 결론은 extractAssets 작업을 빌드 프로세스 초기에 수행해야한다는 것입니다 (mergeAssets보다 먼저?). 그렇다면 dependsOn을 어디에 추가합니까? 당신의 Gradle을 파일에서

+0

나는 최근에 많은 잠재적 인 해답이있는 비슷한 질문을 발견했다. 나는 그들이 무엇이 작동하는지 보도록 노력할 것이다. http://stackoverflow.com/questions/17213236/how-to-run-copy-task-with-android-studio-into-assets-folder –

답변

3

, 당신은 빌드 전에 실행하는 작업 거기에 당신 지정할 수 있습니다 :

는 희망이 도움이 빌드하기 전에 "extractAssets"를 실행합니다

preBuild.dependsOn(extractAssets) 

!

+0

감사합니다, 나는 그것을 시도하고 작동하는지 확인합니다 –

+0

작동합니까 너를 위해서? – Tr4X

+0

오늘 시도하려고합니다! –

관련 문제