Android - MultiDex適用する方法

By JS | Last updated: November 10, 2019

アンドロイドコードはdexというファイルにコンパイルになります。 dexは65,535個のメソッドだけコンパイルがされます。 これを超過するアプリを作成すると、MultiDexに設定してApkファイルにdexが二つ以上でコンパイルされるようにする必要があります。

AndroidXを使用するときにアプリをMultiDexに設定する方法を紹介します。

Gradle設定

まず、Appの build.gradleファイルに次のように"multiDexEnabled true"に設定して、ライブラリを依存関係を追加します。

defaultConfig {
    multiDexEnabled true
}

dependencies {
    implementation 'androidx.multidex:multidex:2.0.1'
    ....
}

アプリのコードを設定

マルチデックスを使用するには、AndroidManifestにApplicationをMultiDexApplicationのクラスに指定する必要があります。

Applicationクラスを別に作らないとき

"AndroidManifest.xml"に次のように名前を設定してくれればされます。

<application
    android:name="androidx.multidex.MultiDexApplication" ... >
    ...

Custom Applicationクラスを作成するときに

次のようにApplicationクラスを個別に作成することができます。

public class MyApplication extends MultiDexApplication {
    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
    }
}

このような場合には、 "AndroidManifest.xml"に実装したApplicationオブジェクトの名前を設定してくれればされます。

<application
    android:name=".MyApplication" ... >
    ...

もしApplicationは上書きが MultiDexApplicationを継承していない場合には、 次のように MultiDex.install(this)を呼び出してMultiDexを使用するようにすることができます。

public class MyApplication extends SomeOtherApplication {
  @Override
  protected void attachBaseContext(Context base) {
     super.attachBaseContext(base);
     MultiDex.install(this);
  }
}

Proguardなどで最適化を行う際に注意しなければなら点はAndroid Developerを参照してください。

参考

Related Posts

codechachaCopyright ©2019 codechacha