MyScriptという手書き文字認識のライブラリがあります。
Androidのライブラリを使っていたのですが、リリースビルドだけクラッシュする問題に悩まされていました。
- MyScriptのサンプルアプリはクラッシュしない
- デバッグビルドだとクラッシュしない
- debuggable=false にするとクラッシュしない
- エミュレータだとリリースビルドでもクラッシュしない
- 実機だとリリースビルドでクラッシュ
- ログをみたかんじ、ndk関係で落ちているっぽい
MyScriptのサンプルアプリと設定を見比べていってクラッシュする、しないを試行錯誤した結果、gladle pluginのバージョンを `3.3.1` から `3.6.1` にするとクラッシュするようになることがわかりました。
さらに、リリースノートを確認して怪しい変更がないか調べていきます。
で、怪しいところを発見。
Native libraries packaged uncompressed by default
When you build your app, the plugin now sets
extractNativeLibs
to"false"
by default. That is, your native libraries are page aligned and packaged uncompressed.
manifest で extractNativeLibs
を false にしたところ、gradle plugin 3.6.1 でリリースビルドしてもクラッシュしなくなりました。