1. ホーム
  2. android

[解決済み] Androidxプロジェクトでandroidをサポートするライブラリは使えますか?

2022-10-10 16:12:51

質問

知っています。 androidx とサポートの依存関係で multidex エラーが発生します。 androidxとandroid supportを同時に使用することはできません。しかし、私の依存ライブラリの1つはandroid support "lottie"を使用しています。

このような場合、どうすればよいのでしょうか?私のプロジェクトから'lottie'を削除すべきでしょうか。

以下は私のgradleです。

defaultConfig {
        minSdkVersion 19
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary = true
        multiDexEnabled true
    }

    ext{
    lottieVersion = "2.5.4"
}


dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

    def androidx = "1.0.0-rc01"
    api "androidx.constraintlayout:constraintlayout:1.1.2"
    api "androidx.appcompat:appcompat:$androidx"
    api "androidx.recyclerview:recyclerview:$androidx"
    api "androidx.cardview:cardview:$androidx"
    api "androidx.core:core-ktx:$androidx"
    api "com.google.android.material:material:1.0.0-rc01"
    implementation "com.google.code.gson:gson:2.8.5"
    implementation "androidx.multidex:multidex:2.0.0"
    implementation "com.airbnb.android:lottie:$lottieVersion"
    }

どのように解決するのですか?

この場合 Jetifier を有効にすると、基本的に Android Support Library という依存関係を AndroidX -を追加します。(例: あなたのLottieの依存関係は、SupportからAnroidXに変更されます)

Android Studio ドキュメントより ( https://developer.android.com/studio/preview/features/ ):

Android Gradleプラグインは、以下のグローバルフラグを提供し、gradle.propertiesファイルに設定することができます。 gradle.properties ファイルで設定できます。

  • android.useAndroidX: このフラグを true に設定すると、これから AndroidX を使い始めることを示します。このフラグがない場合。 Android Studioは、このフラグがfalseに設定されているかのように動作します。
  • android.enableJetifier: true に設定すると、このフラグは、(Android Gradle プラグインによる)ツールサポートで 既存のサード パーティ ライブラリを AndroidX 用に書かれたかのように自動的に変換するツール サポート (Android Gradle プラグインによる) を希望することを示します。 変換するためのツールサポート(Android Gradleプラグインによる)が必要であることを示します。このフラグがない場合、Android Studioは、フラグがfalseに設定されている場合と同様に動作します。 フラグが false に設定されている場合と同じように動作します。

Jetifierの前提条件。

  • を使うには、少なくとも Android Studio 3.2

jetifier を有効にするには、この 2 行を gradle.properties ファイルに追加します。

android.useAndroidX=true
android.enableJetifier=true

最後に、AndroidXのリリースノートを確認してください。 jetifier は一部のライブラリ (例: Dagger Android) でまだいくつかの問題を抱えているからです。 https://developer.android.com/topic/libraries/support-library/androidx-rn