Android StudioのRunで生成された apkファイルを配布すると、、、
Android Studio で Run すると、デフォルトでは、
/<AndroidProcject>/app/build/outputs/apk
にapkファイルが生成されます。
Android Studio 2.0 で導入された Instant Runでも、
同じようにapkファイルが生成されますが、このapkファイルをテスト用で配布すると、
下記のRuntimeExceptionが、、、
java.lang.RuntimeException: Unable to instantiate application com.android.tools.fd.runtime.BootstrapApplication: java.lang.ClassNotFoundException
原因
どうやら、Instant Runでビルドされたapkは、デバッグしている端末に最適化されてビルドされるため、
最適化された端末と合わない端末では実行されないらしい。
※ Android OS 5.0.2系端末でビルドしたapkファイルが、 5系、6系では問題起きませんでしたが、
Android 4.4系で起動した瞬間にクラッシュしました。。。
対応
-
Instant Runをやめる
- メニューバー => Android Studio => Preferences... => Build, Execution,Deplpyment => Instant Run
-
Enable Instant Run to hot swap code/resource changes on deploy
のチェックを外す
-
メニューバー => Build => Build apk で作成する
- 横着せずにこれでやるべきですね。。。
所感
該当端末をUSB繋いで、Android Studioでビルドしても再現せず、
apkファイルでインストールされたアプリでログを取らないとわからなかった。。。
参考
- 解決したときに参照した記事です(ありがとうございました
)
- Unable to instantiate application com.android.tools.fd.runtime.BootstrapApplication ?Android (stackoverflow)