AndroidXへの移行

前回、下記のエントリを書きましたが、

Android コルーチンを便利に利用するためのviewModelScopeが読み込めない

その後、下記のようなエラーが出て、ビルドできなくなりました。

java.lang.RuntimeException: Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory)

AndroidXを使おうと思うと、gradle.propertiesに

android.enableJetifier=true
android.useAndroidX=true

と書くと、今までのライブラリが使えなくなります。
たとえば

import android.support.v7.app.AppCompatActivity

のままではAppCompatActivityが使えなくなり

import androidx.appcompat.app.AppCompatActivity

に置き換えないといけません。
これらを全部importするところは手でやらないといけないので、パッケージ内のコード量が多い場合は、よく考えないといけないですよ!!?

さっきの

という記事での、このようなimport時に古いAPIを読み込んじゃうようなことは防げますね。

ちな、下記のAndroidの公式サイトでは

https://developer.android.com/jetpack/androidx/migrate?hl=ja

Android Studio 3.2 以上では AndroidX を使用して既存のプロジェクトを迅速に移行できるようになりました。移行するには、メニューバーから [Refactor] > [Migrate to AndroidX] を選択します。

って書いてあるんですが、やるとbuild.gradleをきれいにしてくれるのと、レイアウトのxmlファイルを書き直してくれます。xmlファイルは

<android.support.v4.widget.DrawerLayout

<androidx.core.widget.DrawerLayout

のような書き直しを全部でやらないといけないので、自動でやってくれるのは大変助かります。

しかし、プログラム部分は手動で新しいAPIをインポートしないといけないのは変わりありませんでした…。(>_<)

それにしても、こういうビルドできない問題にかける時間や苦しみがすごいですよね。

早く、俺にプログラム書かせてくれってばよ。

というわけで、これからAndroidアプリを作ろうという人は、最初っからAndroidXで作った方がいいです。(重要なことなので、太字にしました)

令和2年も弊社をよろしくお願いいたします。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です