Я працюю в комерційному додатку для Android. Я також використовую деякі бібліотеки, ліцензовані за різними типами ліцензій, деякі з них зазначають наступне:
Якщо у бібліотеці є файл "NOTICE" із примітками про атрибуцію, ви повинні включити це NOTICE під час розповсюдження
(Один з них ліцензований за ліцензією Apache 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, пропонують вилучити ліцензію.txt (повідомлення.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, у свій проект, щоб відповідати ліцензіям ( технічна деталь: тексти ліцензій будуть об’єднані)?