Ticari bir android uygulamasında çalışıyorum. Ayrıca, farklı lisans türleri altında lisanslanmış bazı kütüphaneleri kullanıyorum, bunlardan bazıları şu şekildedir:
Kitaplıkta atıf notlarının bulunduğu bir "NOTICE" dosyası varsa, dağıtım yaparken bu BİLDİRİMİ eklemeniz gerekir
(Örneğin, biri Apache Lisans 2.0 altında lisanslanmıştır ).
Birden fazla kütüphane var. Birlikte yapı yaptığınızda gradle veya Android Studio aşağıdaki yapı hatasıyla edinin:
* 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
Şimdiye kadar internette ve stackoverflow'da bulduğum yanıtlar build.gradle
, aşağıdakileri dosyaya ekleyerek license.txt'yi (notice.txt veya buna benzer başka dosyalar) paketten kaldırmayı önerir :
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'
}
Örneğin bkz .: Android Studio 0.4 APK META-INF / LICENSE.txt dosyasında kopyalanan yinelenen dosyalar
Bu kitaplıkların lisansına göre ( örneğin Apache License 2.0 ), lisans ve bildirim dosyaları dahil edilmelidir .
Sorum: Lisanslarla uyumlu olmak için lisanslama ile ilgili birden fazla dosyayı ( lisans.txt , not.txt vb.) Gradle'dan projeme nasıl ekleyebilirim ( teknik detay: lisans metinleri birleştirilecek)?