2017-11-06 3 views
2

Ich habe eine JSON-Konfigurationsdatei und ich habe es in Res/Raw-Ordner. zuvor habe ich ein Gradle-Skript, das den Dateiinhalt aktualisiert, wenn es notwendig war.Android Gradle Ressourcen bei der Zusammenführung ändern

def fetchMeta(buildVariant) { 
    def flavor = buildVariant.productFlavors.get(0).name 
    def buildType = buildVariant.buildType.name 
    def middleMetaFolder = "${buildDir}/intermediates/meta/${flavor}" 
    def pathToMiddleMeta = "${middleMetaFolder}/latest.json" 
    def rawFolder = "${buildDir}/intermediates/res/merged/${buildVariant.dirName}/raw/" 

    def f = new File(pathToMiddleMeta) 
    boolean doDownload = (!f.exists()) || (f.lastModified() < (System.currentTimeMillis() - 86400000)) 
    // Force on production release 
    if (doDownload || (flavor == "production" && buildType == "release")) { 
     new File(middleMetaFolder).mkdirs() 

     def serverAddress = "https://example.com" 
     String srcUrl = serverAddress + "/latest.json" 
     println "Downloading Meta from: " + srcUrl + " to " + pathToMiddleMeta 
     new URL(srcUrl).withInputStream { i -> f.withOutputStream { it << i } } 
    } else { 
     println "Skipping Meta as it exists here: " + pathToMiddleMeta 
    } 

    copy { 
     from pathToMiddleMeta 
     into rawFolder 
    } 
} 
android.applicationVariants.all { variant -> 
    variant.mergeResources.doLast { 
     fetchMeta(variant) 
    } 
} 

Aber ab android Gradle Plugin 3.0 merge Strategie geändert und Dateien sind mit flacher Erweiterung. Wie kann ich den Inhalt meiner Datei nach diesen Änderungen aktualisieren?

Antwort

Verwandte Themen