Help us understand the problem. What is going on with this article?

Instant Runでビルドされたapkファイルを配布すると、『Unable to instantiate application com.android.tools.fd.runtime.BootstrapApplication』という理由でクラッシュすることがある

More than 1 year has passed since last update.

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系で起動した瞬間にクラッシュしました。。。

対応

  1. Instant Runをやめる

    • メニューバー => Android Studio => Preferences... => Build, Execution,Deplpyment => Instant Run
    • Enable Instant Run to hot swap code/resource changes on deploy のチェックを外す
  2. メニューバー => Build => Build apk で作成する

    • 横着せずにこれでやるべきですね。。。

所感

該当端末をUSB繋いで、Android Studioでビルドしても再現せず、
apkファイルでインストールされたアプリでログを取らないとわからなかった。。。

参考

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away