Sto lavorando a un'applicazione Android commerciale. Sto anche usando alcune librerie concesse in licenza con diversi tipi di licenza, alcune delle quali affermano quanto segue:
Se la libreria ha un file "NOTICE" con note di attribuzione, è necessario includere tale AVVISO quando si distribuisce
(Uno di questi è concesso in licenza con la licenza Apache 2.0, ad esempio).
C'è più di una libreria. Quando eseguo la build con gradle o con Android Studio ottengo il seguente errore di build:
* What went wrong:
Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.
> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/license.txt
Le risposte che ho trovato fino ad ora su Internet e stackoverflow suggeriscono di rimuovere il file license.txt (notice.txt o altri file che potrebbero interferire in questo modo) dal packaging aggiungendo al build.gradle
file quanto segue:
packagingOptions {
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/notice.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/dependencies.txt'
exclude 'META-INF/LGPL2.1'
}
Vedi ad esempio: Android Studio 0.4 File duplicati copiati in APK META-INF / LICENSE.txt
In base alla licenza di queste librerie ( ad esempio, Apache License 2.0 ), i file di licenza e avviso dovrebbero essere inclusi .
La mia domanda: come posso aggiungere più file relativi alla licenza (come license.txt , notice.txt ecc.) Da gradle nel mio progetto per essere conforme alle licenze ( dettagli tecnici: i testi delle licenze verranno concatenati)?