8

ドキュメントにあるようにAndroid StudioでMultiDex機能を有効にすると、自動的に2つ以上のdexファイルに分割されました。設定できません。また、メインの dex ファイルでは、メソッドの量が制限 (65536) に非常に近いようです。

問題は、メイン dex ファイル内のメソッドの量を特定の数、たとえば 60k に減らす方法です。apk を amazon appstore にアップロードする必要があります。amazon の担当者がいくつかのメソッドをメインの dex ファイルに追加し、65536 の制限を超えます。

4

1 に答える 1

12

dx ツールには次のオプションがあります。

  • --minimal-main-dex - main-dex-list によって選択されたクラスのみをメイン dex に配置します。
  • --set-max-idx-number - 1 つの dex ファイルあたりのメソッドの最大数を決定する、文書化されていないオプション。

これら 2 つのオプションを指定して、 build.gradleスクリプトをカスタマイズする必要があります。例 ( source ):

tasks.withType(com.android.build.gradle.tasks.Dex) {    dexTask ->
  def command = [] as List
  command << ' --minimal-main-dex'
  command << ' --set-max-idx-number=50000'
  dexTask.setAdditionalParameters(command)
}

メインの dex が大きすぎる場合、これは役に立たないことに注意してください。どのクラスをメイン dex に配置するかを管理する規則があります。私はそれらについてここにブログを書きました。

編集 (2016 年 1 月 9 日):
Android プラグインのバージョン 1.5 では、dx に追加のパラメーターを追加することはできませんが、今後のバージョンのいずれかで修正されるようです。

于 2015-01-04T13:44:04.837 に答える