Pracuję nad komercyjną aplikacją na Androida. Korzystam również z niektórych bibliotek licencjonowanych na podstawie różnych typów licencji, z których niektóre zawierają następujące informacje:
Jeśli w bibliotece znajduje się plik „UWAGI” z uwagami dotyczącymi źródła, należy dołączyć to UWAGĘ podczas dystrybucji
(Na przykład jeden z nich jest objęty licencją Apache License 2.0 ).
Istnieje więcej niż jedna biblioteka. Kiedy wykonuję kompilację za pomocą gradle lub Android Studio , otrzymuję następujący błąd kompilacji:
* 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
Odpowiedzi, które znalazłem do tej pory w Internecie i stackoverflow, sugerują usunięcie pliku license.txt (notice.txt lub innych plików, które mogą w ten sposób przeszkadzać) z opakowania, dodając do build.gradlepliku:
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'
}
Zobacz na przykład: Android Studio 0.4 Duplikaty plików skopiowane w APK META-INF / LICENSE.txt
Zgodnie z licencją tych bibliotek ( Apache License 2.0 na przykład), pliki licencji i zawiadomienie powinno być włączone .
Moje pytanie: Jak mogę dodać wiele plików związanych z licencją (takich jak license.txt , notice.txt itp.) Z gradle do mojego projektu, aby zachować zgodność z licencjami ( szczegóły techniczne: teksty licencji będą łączone)?