LoginSignup
8
2

More than 5 years have passed since last update.

Androidオープンライセンス表示で com.google.gms:oss-licenses を 0.9.3 に上げる時につまずいたところ

Last updated at Posted at 2018-10-03

はじめに

Androidのアプリを作った当初、以下を参考にして、オープンソースライセンスの管理・表示を行っていました。(バージョンは 0.9.1
com.google.gms:oss-licenses を使ってオープンソースライセンスを表示する

久しぶりに 公式サイト を見たら、 バージョンが 0.9.3 と上がっていたので、そのアップデートをしようとしたところで少しつまずいたので、つまずいた点とそれを解消した方法を書いていきます。
新規で導入される方は 公式サイト の通りに記述すれば問題ありません。

バージョン 0.9.1 のとき

こう記述していました。

build.gradle
buildscript {
    dependencies {
        classpath 'com.google.gms:oss-licenses:0.9.1'
    }
}
app/build.gradle
apply plugin: 'com.google.gms.oss.licenses.plugin'

dependencies {
    implementation 'com.google.android.gms:play-services-oss-licenses:16.0.0'
}

Gradleのsyncでエラー

build.gradle
buildscript {
    dependencies {
        classpath 'com.google.gms:oss-licenses:0.9.3'
    }
}

上記のように 0.9.10.9.3 に変えたところ、こんなエラーが出ます。

Gradle sync failed: Could not find com.google.gms:oss-licenses:0.9.3.
Searched in the following locations:
    - https://dl.google.com/dl/android/maven2/com/google/gms/oss-licenses/0.9.3/oss-licenses-0.9.3.pom
    - ...

クラスパス自体が変わっていることに気づきませんでした。。。
正しくは、こう書きます。

build.gradle
buildscript {
    dependencies {
        // ---------------- Before ----------------
        // classpath 'com.google.gms:oss-licenses:0.9.3'
        // ---------------- After -----------------
        classpath 'com.google.android.gms:oss-licenses-plugin:0.9.3'
    }
}

同様に、プラグインの指定も変わっています。

app/build.gradle
// ---------------- Before ----------------
// apply plugin: 'com.google.gms.oss.licenses.plugin'
// ---------------- After -----------------
apply plugin: 'com.google.android.gms.oss-licenses-plugin'

ビルド時にエラー Error: Duplicate resources

Gradleのsyncは解消ができ、そのままビルドをすると以下のエラーが起きました。

[raw/third_party_license_metadata] /Users/<name>/AndroidProject/<project>/app/src/main/res/raw/third_party_license_metadata   [raw/third_party_license_metadata] /Users/<name>/AndroidProject/<project>/app/build/generated/third_party_licenses/res/raw/third_party_license_metadata: Error: Duplicate resources
[raw/third_party_licenses] /Users/<name>/AndroidProject/<project>/app/src/main/res/raw/third_party_licenses   [raw/third_party_licenses] /Users/<name>/AndroidProject/<project>/app/build/generated/third_party_licenses/res/raw/third_party_licenses: Error: Duplicate resources

これは、プラグインが変わったことで、 third_party_license_metadatathird_party_licenses のファイルが保存される場所が変わったために、重複エラーが起きています。

旧バージョン

  • /Users/<name>/AndroidProject/<project>/app/src/main/res/raw/third_party_license_metadata
  • /Users/<name>/AndroidProject/<project>/app/src/main/res/raw/third_party_licenses

新バージョン

  • /Users/<name>/AndroidProject/<project>/app/build/generated/third_party_licenses/res/raw/third_party_license_metadata
  • /Users/<name>/AndroidProject/<project>/app/build/generated/third_party_licenses/res/raw/third_party_licenses

旧バージョンのファイルは不要となるので、これら2ファイルを削除すれば直りました。

思ったこと

third_party_license_metadatathird_party_licenses ともにビルド時に自動生成されるファイルですが、旧バージョンの場合は /app/src/main/res/raw 配下にあったため、他のrawファイルと混在して邪魔だと感じていました。
しかし、新バージョンでは app/build の配下に置かれたことで、 /app/src/main/res/raw に混在することなく、見通しが良くなったと思います。

8
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
2