Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What is going on with this article?
@mikity1985

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

More than 3 years have 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ファイルでインストールされたアプリでログを取らないとわからなかった。。。

参考

1
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  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

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
1
Help us understand the problem. What is going on with this article?