ฉันกำลังทำงานกับแอปพลิเคชัน Android เชิงพาณิชย์ ฉันกำลังใช้ไลบรารีบางแห่งที่ได้รับอนุญาตภายใต้ใบอนุญาตประเภทต่างๆซึ่งบางแห่งระบุดังต่อไปนี้:
หากไลบรารีมีไฟล์ "NOTICE" พร้อมบันทึกแสดงแหล่งที่มาคุณต้องใส่ NOTICE นั้นเมื่อคุณแจกจ่าย
(หนึ่งในนั้นได้รับอนุญาตภายใต้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 ใบอนุญาต 2.0เป็นต้น) ใบอนุญาตและแจ้งให้ทราบล่วงหน้าไฟล์ที่ควรจะรวม
คำถามของฉัน: ฉันจะเพิ่มไฟล์หลายไฟล์ที่เกี่ยวข้องกับการออกใบอนุญาต (เช่นlicense.txt , notice.txt และอื่น ๆ ) จากการไล่ระดับลงในโปรเจ็กต์ของฉันได้อย่างไรเพื่อให้สอดคล้องกับใบอนุญาต ( รายละเอียดทางเทคนิค:ข้อความใบอนุญาตจะถูกต่อกัน)