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アプリ:特定のViewに最初のフォーカスをあてる

Android Studioにおいて、起動時に特定のViewにフォーカスをあてる方法です。 activity_main.xmlで設定 レイアウト定義ファイル(activity_main.xml)におい…続きを読む

Androidアプリ:フォーカスをあてたEditTextのテキストを全選択する

Android StudioでEditTextにフォーカスが当たったと同時に、既に入力されている文字列をすべて選択した状態にする方法です。 EditTextタグに以下のコードを追加 android:s…続きを読む

Androidアプリ:画面遷移時に値を渡す

Androidで画面遷移時に値を渡す方法です。 数値を渡す場合 MainActivity.java public class MainActivity extends Activity { @Over…続きを読む

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

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

Androidアプリ:画面の高さと幅を取得する

Andoroidで、画面の高さと幅を取得する方法です。 MainActivity.java Android端末の画面サイズ(高さと幅)を表示します。 public class QuestionActi…続きを読む

Androidアプリ:数値型のViewの値がNullか0以下かを判定する

Android Studioで数値型のEditTextのViewを配置して、値を取得した場合に、その値がNull値(空)もしくは0以下であるか否かを判定する方法です。 Null判定にlength()を…続きを読む

Androidアプリ:アダプティブアイコンに対応する

AndroidではOS 8.0からAdaptiveアイコン(アダプティブアイコン)というアイコンを用意する必要がでてきました。 これまでの通常のアイコン、ラウンドアイコンに加えて、アダプティブアイコン…続きを読む

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

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

Androidアプリ:Android StudioでデバッグしようとするとPlease select Android SDKと表示される

Android Studioを使っていて、動作確認するために実行(run)をすると、ADVが起動せず、「Error: Please select Android SDK」と表示されてしまった場合の復旧…続きを読む

Androidアプリ:ボタンやEditTextに余白(パディング)を設定する

Android StudioでボタンやEditTextに余白(パディング)を設定します。 余白の設定はレイアウトファイル(activity_main.xml)を編集します。 activity_main…続きを読む