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

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

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

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

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

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

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

Androidアプリ:android:fullBackupContentの宣言

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

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

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

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

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

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

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

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

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