Androidアプリ:ライブラリの更新とエラーの修正
Androidアプリを開発していて、Build.gradle(app)の、dependenciesの項目内でハイライト表示されたり、赤い下線が引かれたりすることがあります。
ハイライトはライブラリを更新することを薦めるお知らせで、下線は注意喚起です。
実は放っておいてもエラーで止まることなくビルドできてしまいますが、いずれも修正した方がよいので、修正の仕方を調べました。

ライブラリの更新
読み込んでいるライブラリの最新バージョンがわからなくても、ハイライト表示されている部分にカーソルを合わせれば、最新バージョンが表示されます。
あとはこの最新バージョンに書き換えるだけです。


ライブラリの修正
androidTestImplementation 'com.android.support.test:runner:1.0.2'
や
implementation 'com.android.support:appcompat-v7:27.1.1'
に赤い下線がつくことがあります。
カーソルを合わせると、2つのバージョンのライブラリが読み込まれているという注意が表示されます。
この場合は、27.1.1と26.1.0でした。
この競合を避けるためには、カーソルを合わせたときに表示されたライブラリを読み込ませるようにdependenciesに追加します。
ここでは、以下の4行を追加しました。
implementation 'com.android.support:support-v4:27.1.1'
implementation 'com.android.support:support-media-compat:27.1.1'
implementation 'com.android.support:animated-vector-drawable:27.1.1'
implementation 'com.android.support:customtabs:27.1.1'
このあと、Sync Nowをクリックして反映させると、赤い下線が消えます。

上の画像は、以下のような内容が書かれています。
All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 27.1.1, 26.1.0. Examples include com.android.support:animated-vector-drawable:27.1.1 and com.android.support:customtabs:26.1.0
There are some combinations of libraries, or tools and libraries, that are incompatible, or can lead to bugs. One such incompatibility is compiling with a version of the Android support libraries that is not the latest version ( or in particular, a version lower than your target Sdk Version).
com.android.supportライブラリーは同じバージョンを利用しなければならないのに、複数のバージョンが見つかったので、以下のライブラリを追加してください、というようなことが書かれています。
この2つ(animated-vector-drawable:27.1.1とcustomtabs:26.1.0)を追加しても、赤線は消えず、最終的には4つのライブラリを追記すると赤線が消えます。

このように、Build.gradle(app)でハイライト表示や赤い下線が表示された場合には、そのままにしてビルドするとランタイムがクラッシュする場合があるため、必ず修正しましょう。
play-services-adsを17.0.0にした場合
com.google.android.gms:play-services-ads:17.0.0
を設定した場合には、AndroidManifest.xmlの修正が必須になります。
<manifest>
<application>
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-****************~**********"/>
</application>
</manifest>
<application>タグ内に<meta-data />タグを追加します。
*の部分は、AdMobから配付されているアプリケーションIDを指定します。
関連記事