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アプリ:レイアウトの途中にスクロールを入れる

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

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

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

Androidアプリ:ストアの掲載情報

Androidアプリのプログラムが完成したらすぐにGoogle Playにアップロードできるわけではありません。 プログラム以外に必要なデータを以下にリストアップしました。 ストアの掲載情報として必要…続きを読む

Androidアプリ:タイトルバーを消す

Android Studioで、タイトルバーを消す方法です。 通常は、以下のように画面上部にタイトルバーが表示されています。 AndroidManifest.xmlを編集する android:them…続きを読む

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

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

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

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

Androidアプリ:特定のViewに最初のフォーカスをあてる

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

Androidアプリ:アプリを更新する場合の設定

一度リリースしたAndroidアプリを更新してアップロードする場合には、必ずバージョンを更新しなければなりません。 今回はバージョンの更新方法について調べました。 build.gradleの修正 bu…続きを読む

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

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

Androidアプリ:ライブラリの更新とエラーの修正

Androidアプリを開発していて、Build.gradle(app)の、dependenciesの項目内でハイライト表示されたり、赤い下線が引かれたりすることがあります。 ハイライトはライブラリを更…続きを読む