2014-09-18 17 views
17

Wissen Sie bitte, wie Sie eine Datei aus dem Ordner für Android-Projekt-Assets ausschließen können, bevor mehrere Asset-Ordner zusammengeführt werden oder während der Zusammenführung?Gradle: Datei aus Android-Assets-Ordner ausschließen

Zum Beispiel:

android { 
    sourceSets { 
    main { 
     assets.srcDirs = [fileTree(dir: 'assets1', exclude: 'myfile.txt'), 'assets2'] // does not work 
     assets.exclude 'assets1/myfile.txt' // does not work 
     assets.exclude '**/*.txt' // does not work 
     assets.exclude '*.txt' // does not work 
    } 
    } 

    packagingOptions { 
    exclude 'assets1/myfile.txt' // does not work 
    exclude '**/*.txt' // does not work 
    exclude '*.txt' // does not work either 
    } 


    aaptOptions { 
    ignoreAssetsPattern "myfile.txt" // does not work 
    } 
} 
+0

FYI zu entfernen: 'assets.srcDirs = [filetree (dir: 'Vermögenswerte1', exclude: 'myfile.txt'), 'assets2'] 'funktioniert nicht. – Blackhex

+0

Haben Sie eine Lösung gefunden? Das gleiche Problem mit einigen Assets Datei von einem Jar Abhängigkeit – 3c71

Antwort

6

Es ist im Moment nicht möglich ist.

Die Funktion gilt nicht für Android-Ressourcen oder Assets.

+0

Vielen Dank, ich werde versuchen, mit der Abhängigkeit zu kopieren Aufgabe oder FileTree zuerst, bevor ich es aufgeben ... – Blackhex

6

ich denke, das sollte das tun, was Sie wollen:

android { 
    aaptOptions { 
     ignoreAssetsPattern "myfile.txt" 
    } 
} 

Quelle:http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-aapt-options

+0

Cool, danke, ich werde das versuchen und zu akzeptieren Ihre Antwort entsprechend. – Blackhex

+1

Nein, das funktioniert auch nicht. Der Fehler über doppelte Dateien wird während der Phase "mergeAssets" ausgelöst, während ich denke, dass "aaptOption" in der Paketphase angewendet wird. – Blackhex

+0

Ok, ich sehe ... sorry sie:/ –

1

Try this:

export ANDROID_AAPT_IGNORE="ignoreAssetsPatternThatActuallyWorks" 
./gradlew assembleDebug 

Es ist der einzige Weg, um den mergeDebugAssets Schritt (Code beeinflussen found here).

Filed a bug darüber.

+0

Danke, ich werde versuchen, dass ... – Blackhex

13

Ich laufe auf das gleiche Problem und es scheint ein "!" funktioniert, um anzugeben, dass die Datei ausgeschlossen werden sollte:

"assets.exclude" funktioniert möglicherweise auch, indem ein "!" aber ich habe es nicht getestet ...

+2

verwenden Sie '*' für Wide Char, und verwenden Sie ':', um Muster zu teilen. wie: ** "! *. txt:! *. rtf" ** –

+0

funktioniert für mich .. – jony89

0

nur bash verwenden

zip -d xx.jar xxx.txt 

duplizierten Datei aus JAR-Datei

Verwandte Themen