HOME技術AndroidAndroidアプリ:AndroidXに対応する

Androidアプリ:AndroidXに対応する

2018年に、AndroidのSupportLibraryは、AndroidXに移行することが発表されました。

AndroidXとは

Support Libraryとは簡単に言うと、Androidアプリ開発において必要なプログラム群のことです。
このライブラリは、様々な種類のユーティリティ(端末固有のUX、デバッグ、テストほか)が存在し、利活用されていくなかで膨大な量に成長してきました。
今では大量に存在するライブラリが、混乱の原因になりつつあります。
これを解消するためにライブラリを体系化してまとめなおしたものがAndroidXです。

ライブラリのバージョンは、これまでのところ28.0.0が最新バージョンでしたが、AndroidXでは1.0.0に戻ります。

ライブラリがまとめなおされるということは、既存のアプリでAndroidXに対応していないアプリは、修正しなければなりません。具体的にはライブラリ名を変更することになります(そのほかの部分も修正が必要になります)。
もちろん、修正せずに今までのライブラリでも動作は問題なく行われます。

既存のアプリをAndroidX対応にする

Android Studioを使用していると、起動時にbuild.gradleのバージョンをアップデートすることがあります。
build.gradleのバージョンが3.2.0以降になると、AndroidXに対応することができるようになります。そのため、既存のサポートライブラリのままだとAndroidXのライブラリと重複が起き、ビルドするときにエラーの原因になります。

これが煩わしいので、build.gradleをアップデートしないという選択肢もあります。
それでもいつかは直面する問題かもしれないため、今から既存アプリをAndroidXに対応させることにしました。

まず、build.gradleを最新版に設定します。
AndroidStudioを起動して、プロジェクトが読み込まれた時点でアップデートするか聞かれた場合には、そのままアップデートします。
手動でアップさせる場合には、
gradle-wrapper.properties
というファイルを開き、

distributionUrl=https\://services.gradle.org/distributions/gradle-*.*.*-all.zip

の「*」部分を最新バージョンにします。
現時点では、5.1.1が最新版なので、それを指定します。

AndroidStudioの「Refactor」→「Migrate to AndroidX…」をクリックします。
現在のプロジェクトをzip保存するかと聞かれますので、念のために「Backup project as Zip file」にチェックを入れて、「Migrate」をクリックします。
通常だと、これだけでこれまでのサポートライブラリは自動的にAndroidX対応になります。
しかし、私の場合は何も起きなかったので、手動でライブラリを書き換えました。

サポートライブラリを書き換える

サポートライブラリを書き換える場合には、以下のURLに書き換え先の名称が書かれています。

https://developer.android.com/jetpack/androidx/migrate

gradle.propertiesに追記する

gradle.propertiesを開き、以下の2行を追記します。

android.useAndroidX=true
android.enableJetifier=true

以上でビルドしたところ、エラーもなくビルドできました。

関連記事

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

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

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

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

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

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

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

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

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

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

Androidアプリ:ボタンの表示/非表示

Androidでボタンの表示/非表示をプログラム上からコントロールします。 MainActivity.java   Button button = findViewById(R.id.but…続きを読む

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

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

Androidアプリ:エラー「ScrollView can host only one direct child」

Android StudioでScrollViewを設定して動作確認しようとすると、「ScrollView can host only one direct child」というエラーが出て動作確認でき…続きを読む

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

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

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

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