私は商用のandroidアプリケーションで働いています。また、さまざまなライセンスタイプでライセンスされているいくつかのライブラリを使用しています。
ライブラリに帰属情報が記載された「NOTICE」ファイルがある場合は、配布時にその通知を含める必要があります
(たとえば、そのうちの1つは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でこれまでに見つけた回答はbuild.gradle
、次のファイルに追加して、license.txt(notice.txtまたはこのように干渉する可能性のあるその他のファイル)をパッケージから削除することを提案しています。
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を参照してください。APKMETA-INF / LICENSE.txtにコピーされた重複ファイル
これらのライブラリのライセンス(Apache License 2.0など)によると、ライセンスと通知ファイルが含まれている必要があります。
私の質問: ライセンスに準拠するために、gradleからライセンスに関連する複数のファイル(license.txt、notice.txtなど)をプロジェクトに追加するにはどうすればよいですか(技術的な詳細:ライセンスのテキストが連結されます)?