ProGuardを使うとアプリを小さくしたり解読を難しくしたりと、リリースする際には必須のメリットを享受することができます。しかし、ProGuardを有効にしたリリースビルドを起動した途端クラッシュするとかリクエストがコケるとか、そういった現象にぶち当たった人は少なくないのではないでしょうか。ProGuardの仕組みを把握してprogurad-rules.txtに適切なルールを書き足せばこれらのクラッシュは回避できます。 ProGuardはそもそも何をするのか アプリケーションとライブラリのclassファイルを解析し、 誰からも呼び出されていないクラスとクラスメンバ(メソッド、フィールド)や、各種メタデータを削除するなどしてバイナリサイズを小さくします(シュリンク) バイトコードレベルの最適化を実施し、その結果不要になったクラスメンバなどを削除します リネームしても問題ない要素をリネームし