Estou trabalhando em um aplicativo comercial para Android. Também estou usando algumas bibliotecas licenciadas sob diferentes tipos de licença, algumas delas declarando o seguinte:
Se a biblioteca tiver um arquivo de "AVISO" com notas de atribuição, você deve incluir esse AVISO ao distribuir
(Um deles está licenciado sob a Licença Apache 2.0, por exemplo).
Existe mais de uma biblioteca. Quando faço a compilação com o gradle ou com o Android Studio , obtenho o seguinte erro de compilação:
* 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
As respostas que encontrei até agora na internet e stackoverflow sugerem remover o license.txt (notice.txt ou outros arquivos que possam interferir assim) da embalagem, adicionando ao build.gradle
arquivo o seguinte:
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'
}
Veja, por exemplo: Android Studio 0.4 arquivos duplicados copiados no APK META-INF / LICENSE.txt
De acordo com a licença dessas bibliotecas ( Licença Apache 2.0 por exemplo), os arquivos de licença e aviso devem ser incluídos .
Minha pergunta: Como posso adicionar vários arquivos relacionados ao licenciamento (como license.txt , notice.txt etc.) do gradle em meu projeto para estar em conformidade com as licenças ( detalhes técnicos: os textos das licenças serão concatenados)?