[Flutter]Error while merging dex archives: The number of method references in a .dex file cannot exceed 64K.の対処法

このページには広告が含まれる場合があります。

 

FlutterのプロジェクトをAndroidの実機あるいはエミュレーターで動かした時に、こんな感じで、

 

D8: Cannot fit requested classes in a single dex file (# methods: 85467 > 65536)
com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: 
The number of method references in a .dex file cannot exceed 64K.
Learn how to resolve this issue at https://developer.android.com/tools/building/multidex.html

というわけのわからないエラーが出てしまったときの対処法です。

(注)Flutter2.10以降は、エラーメッセージがわかりやすくなっています。

[!] App requires Multidex support

┌─ Flutter Fix ──────────────────────────────────────────────────────────────────────────────────┐
│ Flutter multidex handling is disabled. If you wish to let the tool configure multidex, use the │
│ --mutidex flag.                                                                                │
└────────────────────────────────────────────────────────────────────────────────────────────────┘

Androidでは使っているライブラリも含めて65536メソッド以上使ってはいけない

実は、Androidでは65536個以上のメソッドを参照してはいけないという縛りがあります。

アプリ、およびアプリの参照するライブラリが 65,536 メソッドを超えると、ビルドエラーが発生し、Android ビルド アーキテクチャの制限に達したことが示されます。

と言われても、自分でメソッドを65536個以上も作った覚えなんかないですよね。

実は、この「65536」という数は、自分で作ったメソッドだけじゃなくて、使っている外部のライブラリに含まれているメソッドも対象に入っています。

ですので、ライブラリをたくさん使っている場合は、このエラーに遭遇する可能性が高くなるということなのです。

じゃあ、一体どうしたらええねん!?ということですよね。

 

minSdkVersionを21(Androidのバージョン5.0)に引き上げれば解決

この解消方法は2通りあって、

1)「minSdkVersion(アプリがインストールできる最低レベルのAndroidのOSのバージョン)」を21(Androidのバージョン5.0)以上に引き上げる

あるいは

2)minSdkVersion を 20 以下に設定している場合は、multidex サポート ライブラリを使用してアプリのプロジェクトに以下のように変更を加える

の2通りがありますが、今の御時世ではAndroid5.0以上の端末が世界の9割以上を占めているので、個人的には1)でいいと考えています。

(詳しくは、下の動画で解説していますので、よろしければご覧ください)

こんな記事も読まれています

今すぐ無料お試しキットを受け取る

はじめての方へ


みんプロ式プログラミング講座体系・ラインナップ
みんプロ式プログラミング講座受講の流れ(割引特典利用方法)
サイトマップ(みんプロHPコンテンツ一覧)
運営会社概要

みんプロ作成アプリ





今すぐ無料お試しキットを受け取る
TOP