Я работаю над коммерческим андроидным приложением. Я также использую некоторые библиотеки, лицензированные под разными типами лицензий, некоторые из которых заявляют следующее:
Если в библиотеке есть файл "УВЕДОМЛЕНИЕ" с примечаниями о атрибуции, вы должны включить это УВЕДОМЛЕНИЕ при распространении
(один из них лицензирован под Apache License 2.0).
Существует более одной библиотеки. Когда я делаю сборку с gradle или с Android Studio, я получаю следующую ошибку сборки:
* 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
Ответы, которые я нашел до сих пор в Интернете и stackoverflow, предлагают удалить из файла license.txt(notice.txt или другие файлы, которые могут помешать) из упаковки, добавив в файл build.gradle
следующее:
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'
}
См. например: Android Studio 0.4 Дублирующие файлы, скопированные в APK META-INF/LICENSE.txt
Согласно лицензии этих библиотек (например, Apache License 2.0), файлы лицензий и уведомлений должны быть включены.
Мой вопрос:. Как добавить несколько файлов, связанных с лицензированием (например, license.txt, notice.txt и т.д.) из gradle в мой проект, чтобы соответствовать требованиям лицензий ( техническая информация: тексты лицензий будут конкатенированы)?