はじめに
まだ AndroidX に移行できていない Android の project で、Android Studio (恐らく 3.5 以降)でモジュールを新規追加しようとしたときに、 Project needs to be cconverted to androidx.* dependencies
が表示されて module が追加できないケースに遭遇しました。
AndroidX 対応を推奨しますが、取り急ぎ module を追加できるようにする workaround があったので紹介します。
Workaround
-
gradle.properties
にandroid.useAndroidX=true
を一旦追加する。 - Android Studio で module を追加する(追加できる)
- 1. で追加した
android.useAndroidX=true
を差し戻す - 追加した module の AndroidX 依存をなくす
です。
4. 追加した module の AndroidX 依存をなくす
について、補足します。
project 全体が AndroidX 対応していないにも関わらず、 android.useAndroidX=true
により AndroidX 対応しているかのように見せかけて module を追加したので、追加された module は AndroidX に対応しています。
しかしながら、project 全体は AndroidX 対応していないので、不整合が発生してしまいます。
例えば、 testInstrumentationRunner
が既存 module だと android.support.test.runner.AndroidJUnitRunner
なのに、追加された module はandroidx.test.runner.AndroidJUnitRunner
だったりします。
このような点を既存 module に揃えることで、 Project needs to be cconverted to androidx.* dependencies
が出て module が追加できない問題は回避することが可能です。
さいごに
AndroidX に移行しましょう。