前人未踏の領域へ アプリ開発編

Android, iOSアプリ開発に関する調査メモ置き場。ほとんどAndroid。はてなダイアリーから移行したため古い記事にはアプリ以外も含まれます。

Mutidex問題。NoClassDefFoundErrorに遭遇

問題

Google Play Servicesを11.8.0に上げたところGoogleAnalytics.getInstance()を実行した時点で
4系端末でNoClassDefFoundErrorが発生してアプリが落ちるようになってしまった。

対応

調べたところMultidex問題に関係してそうだったのでmultidex-config.txtを記述してみたが
解決せず。

動くところまでコミットログを遡ったところ、
原因はGoogle Play Servicesではなく、Android Studioを3.1 Canary8 にしたタイミングで
ビルドツールのGradleのバージョンを上げたことにあったようだ。

動かない

root/build.gradle

    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.0-alpha08'
動く

root/build.gradle

    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'

上記バージョンにとどめておけば、Android Studioを3.1 Canary8にして他のライブラリのバージョンを上げても
問題なく動作することを確認。積極的にアップデートするタイプなので地雷踏むと
動くとこまで戻るのが大変だ。