Tôi đang làm việc tại một ứng dụng Android thương mại. Tôi cũng đang sử dụng một số thư viện được cấp phép theo các loại giấy phép khác nhau, một số trong số đó nêu rõ những điều sau:
Nếu thư viện có tệp "THÔNG BÁO" với các ghi chú thuộc quyền, bạn phải gửi kèm THÔNG BÁO đó khi phân phối
(Một trong số chúng được cấp phép theo Giấy phép Apache 2.0 chẳng hạn).
Có nhiều hơn một thư viện. Khi tôi xây dựng với gradle hoặc với Android Studio, tôi gặp lỗi xây dựng sau:
* 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
Các câu trả lời mà tôi tìm thấy cho đến bây giờ trên internet và stackoverflow đề xuất loại bỏ license.txt (văn bản thông báo.txt hoặc các tệp khác có thể gây trở ngại như thế này) khỏi đóng gói bằng cách thêm vào build.gradle
tệp sau:
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'
}
Xem ví dụ: Android Studio 0.4 Tệp trùng lặp được sao chép trong APK META-INF / LICENSE.txt
Theo giấy phép của các thư viện đó ( Ví dụ: Giấy phép Apache 2.0 ), giấy phép và tệp thông báo phải được bao gồm .
Câu hỏi của tôi: Làm thế nào tôi có thể thêm nhiều file liên quan đến việc cấp phép (như license.txt , notice.txt vv) từ gradle vào dự án của tôi để đảm bảo phù hợp với giấy phép ( chi tiết kỹ thuật: giấy phép văn bản sẽ được nối)?