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アプリ:ボタンやEditTextに背景色・枠線をつける

Android Studioで、ボタンやEditTextに背景色や枠線をつける方法です。 コントロールの見た目の設定をするには、別途専用のxmlファイルを生成して、そこに書いた設定を読み込むようにしま…続きを読む

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

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

Androidアプリ:背景に画像を指定する

Android Studioを使って、背景に画像を設定する方法です。 背景画像を格納する 今回は以下の画像を使います。 画像サイズなどは適当につくります。 Androidは様々な解像度がありますが、画…続きを読む

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

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

Androidアプリ:ボタンをタップして別画面に遷移する

ボタンをタップしたら別画面に遷移させる方法です。 以下の例では、メイン画面の「ボタン」をクリックすると、サブ画面に移動し、サブ画面の「終了」ボタンを押すとメイン画面に戻ってきます。 メイン画面 act…続きを読む

Androidアプリ:ボタンのテキストを変える

Androidでボタンのテキストをプログラム上で変える方法です。 MainActivity.java   Button button = findViewById(R.id.button);…続きを読む

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

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

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

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

Androidアプリ:Firebaseを利用したAdMobの実装方法

AndroidアプリでFirebaseを利用したAdMobの実装方法を調べました。 なお、FirebaseおよびAdMobには既にユーザ登録済みであることを想定しています。 未登録の場合は先に登録して…続きを読む

Androidアプリ:ボタンの仕様を1つのxmlファイルにまとめる

Android Studioで、ボタンなどの色や形の指定をする際、1つのxmlファイルで、ボタンを押したときと押していないときの状態を指定する方法です。 xmlファイルの指定 Android Stud…続きを読む