1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Multidex使用時にNoClassDefFoundErrorが出た時に…

Last updated at Posted at 2018-06-30

Multidexを有効化している時にNoClassDefFoundError が出てきてハマったのでメモ。
何かの参考になれば幸いです。

結論:multiDexKeepFile or multiDexKeepProguardを使ってみよう

公式のドキュメントに詳しく書いてありました(が、完全に見落としていました)。

プライマリ DEX ファイルで必要なクラスの宣言
https://developer.android.com/studio/build/multidex#keep

Multidex アプリ用に各 DEX ファイルを作成するときに、ビルドツールでは複雑な判断基準に基づいて、アプリを正常に起動するためにプライマリ DEX ファイルで必要となるクラスを決定します。起動時に必要ないずれかのクラスがプライマリ DEX ファイルで提供されていない場合、アプリはエラー java.lang.NoClassDefFoundError でクラッシュします。

まんま書いてありました。
プライマリDEXファイルで必要となるクラスを宣言しとかないといけないということですね。

multiDexKeepFilemultiDexKeepProguard は同じようなことをしていますが、

  • multiDexKeepFile => ファイルで指定可能
  • multiDexKeepProguard => ProGuardの文法で指定可能

という違いがあるようです。

NoClassDefFoundError で困っている方は、是非一度 multiDexKeepFile or multiDexKeepProguard を試してみるといいかもしれません。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?