Ich arbeite an einer kommerziellen Android-Anwendung. Ich verwende auch einige Bibliotheken, die unter verschiedenen Lizenztypen lizenziert sind. Einige von ihnen geben Folgendes an:
Wenn die Bibliothek eine "NOTICE" -Datei mit Attributionsnotizen enthält, müssen Sie diese NOTICE bei der Verteilung angeben
(Einer von ihnen ist beispielsweise unter Apache License 2.0 lizenziert ).
Es gibt mehr als eine Bibliothek. Wenn ich den Build mit gradle oder mit Android Studio mache, erhalte ich den folgenden Buildfehler :
* 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
Die Antworten, die ich bisher im Internet und im Stackoverflow gefunden habe, schlagen vor, die Datei license.txt (Notice.txt oder andere Dateien, die auf diese Weise stören könnten) aus dem Paket zu entfernen, indem Sie der build.gradle
Datei Folgendes hinzufügen :
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'
}
Siehe zum Beispiel: Android Studio 0.4 Doppelte Dateien, die in APK META-INF / LICENSE.txt kopiert wurden
Entsprechend der Lizenz dieser Bibliotheken ( z. B. Apache License 2.0 ) sollten die Lizenz- und Benachrichtigungsdateien enthalten sein .
Meine Frage: Wie kann ich mehrere gradungsbezogene Dateien (wie licence.txt , Notice.txt usw.) von gradle in mein Projekt einfügen, um die Lizenzen einzuhalten ( technisches Detail: Lizenztexte werden verkettet)?