Estoy trabajando en una aplicación comercial de Android. También estoy usando algunas bibliotecas con licencias de diferentes tipos de licencias, algunas de las cuales indican lo siguiente:
Si la biblioteca tiene un archivo de "AVISO" con notas de atribución, debe incluir ese AVISO cuando distribuya
(Uno de ellos tiene la licencia Apache License 2.0, por ejemplo).
Hay más de una biblioteca. Cuando hago la compilación con gradle o con Android Studio, obtengo el siguiente error de compilación:
* 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
Las respuestas que encontré hasta ahora en Internet y stackoverflow sugieren eliminar el license.txt (aviso.txt u otros archivos que podrían interferir como este) del paquete agregando al build.gradle
archivo lo siguiente:
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'
}
Ver, por ejemplo: Android Studio 0.4 Archivos duplicados copiados en APK META-INF / LICENSE.txt
De acuerdo con la licencia de esas bibliotecas ( Apache License 2.0, por ejemplo), se deben incluir los archivos de licencia y aviso .
Mi pregunta: ¿Cómo puedo agregar varios archivos relacionados con las licencias (como license.txt , notice.txt , etc.) de gradle en mi proyecto para cumplir con las licencias ( detalle técnico: los textos de las licencias se concatenarán)?