≒ Proguardで嵌った件

今回はアプリ公開の顛末は書き残さないことにしたんだけど、公開直前、最後の最後にProguard設定でチョイ嵌りしたので備忘録。

  1. 基本的なところ。今回広告ユニット導入したのでいままでのアプリが700kbぐらいに収まってたのが2.2mbぐらいになった。そんで「shrinkReleaseMultiDexComponents」エラー発生。
    これはググってすぐ解決。appのbuild.gradle、「defaultConfig」に「multiDexEnabled true」設定記述でOK。メソッド数上限超えたらしい。
  2. アナリティクスの設定マニュアルによると最上位のbuild.gradleとアプリ単位のbuild.gradle両方にdependencies記述必要になってるんだけど、これいらん。バッティングしてエラー。アプリ単位のbuild.gradleに記述でOK。
  3. 上記2つでデバッグビルドはOK。リリースビルドだけ出来ない。小一時間ほど嵌ったけど毎度おなじみ、皆大好きスタックオーバーフローで解決。いろんなとこにいろんな情報かいてるんだけど、このページの最後のほうの「gradle自体のバージョンをあげろ」だけで解決。「バッティングしてるクラスさがしてProguardのalert除外設定しろ」って解決策が良く出てくるんだけどそれいらんかったです。

この記事書くのに色々再現させていたら驚愕の事実が! 上の1と2もイランw 3だけでいいことが判明。確かに1の設定マニュアルにある「play-services-analytics」と広告表示用の「play-services-ads」でも3やる前はバッティングでエラー出てたもの。早速apk差し替えしとこう。