HOME技術AndroidAndroidアプリ:ライブラリの更新とエラーの修正

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を指定します。

関連記事

Androidアプリ:テキストをリスト表示する

Androidアプリで、ListViewを使い、配列に格納したテキストをリスト表示します。 MainActivity.java import android.app.Activity; import …続きを読む

Androidアプリ:android:fullBackupContentの宣言

Android Studioで、以下のようなエラーメッセージが表示されました。 On SDK version 23 and up, your app data will be automaticall…続きを読む

Androidアプリ:When using intent filters, please specify ‘android:exported’ as well

Android Studioで「When using intent filters, please specify ‘android:exported’ as well」という…続きを読む

Androidアプリ:ポリシー違反の警告への対応(APIレベル)

Google Play Console上で、アプリにポリシー違反の警告が表示されていました。 「お客様のアプリはGoogle Playデベロッパープログラムポリシーを遵守していないため、まもなく措置を…続きを読む

Androidアプリ:入力された数値を足して表示する

2つのテキストボックスに入力した数値を受け取り、それぞれを足した結果を表示するアプリをつくります。 ここではレイアウト定義ファイルを「activity_main.xml」、 プログラムファイルを「Ma…続きを読む

Androidアプリ:レイアウトの途中にスクロールを入れる

Androidアプリで以下のようなレイアウトを組む方法です。 weightSumを使う 上、中央、下のパーツに分けて、上下のパーツは固定、中央のパーツはスクロール可能にします。 最初にLinearLa…続きを読む

Androidアプリ:画面をタップしたら文字を入れ替える

画面をタップしたら文字を入れ替えるアプリをつくります。 今回はタッチイベントを取得する方法を調べました。 ここではレイアウト定義ファイルを「activity_main.xml」、 プログラムファイルを…続きを読む

Androidアプリ:Class ‘Anonymous class derived from OnItemClickListener’…のエラー

Android Studioで開発中に、ListViewを使っていて以下のようなエラーメッセージが出た場合の理由です。 Class ‘Anonymous class derived from OnIt…続きを読む

Androidアプリ:ボタンを押すとメッセージが入れ替わる

Android StudioでAndroidアプリを試作します。 今回は「ボタンを1回押すとテキストの内容が変わり、もう1回押すと元に戻る」というだけのアプリをつくります。 プロジェクトの生成 And…続きを読む

Androidアプリ:String型の変数に格納した画像や音声ファイル名から表示・再生する

Android Studioを使って画像ファイル名や音声ファイル名から、ImageViewで画像を表示したりMediaPlayerで音声再生する方法です。 String型の変数に、画像ファイル名もしく…続きを読む