2017-05-02 5 views
0

API 21 AVDでAndroidアプリ(最小API 21、ターゲット25)をテストしました。 Androidスタジオで[アプリを実行]ボタンをクリックすると、{project}/app/build/outputs/apk /にデバッグAPKが作成されました。その後、そのAPKを物理的なAPI 25デバイスにコピーしてテストしました。Android Studio 2.3:自動生成されたデバッグ - 物理デバイスでAPKが実行されなくなった

Gentoo LinuxでAndroid Studioを2.2.3.0.145.3537739から2.3.0.8.162.3764568にアップグレードしたため、これらの自動生成されたAPKは物理デバイス上で実行されなくなりました。起動時にアプリケーションが即座にクラッシュし、ログに「java.lang.ClassNotFoundException:クラス{私のメインアクティビティクラス}が見つかりませんでした」に起因する「java.lang.RuntimeException:アクティビティをインスタンス化できません」というメッセージが表示されます。

「ビルド>ビルドAPK」をクリックして手動でデバッグAPKをビルドすると、生成されたAPKは自動生成されたものとは異なるファイルサイズを持ち、苦情もなく物理デバイス上で実行されます。

実際には2つの質問があります。
1.手動で生成されたデバッグAPKが自動生成されたものと異なるのはなぜですか?
2. Android Studio 2.3以降、物理デバイスで自動生成されたものが何故失敗するのですか?以前のすべてのStudioバージョンで正常に動作しました。

USBデバッグが存在し、デバッグAPKをデバイスにコピーするプロセスが実際には無意味であるにもかかわらず、いくつかの洞察のために願っています。 :-)

+0

あなたはAndroidのgradleプラグインもアップグレードしましたか?または、SDKのツールかもしれない? – ahasbini

+0

それは可能です、私は本当に最近の更新が実際に新しい動作の原因であるかどうかはわかりません。 現在のGradleプラグインは2.3.0(前は2.2.3)、Gradleは3.3です(以前は2.14.1と思われました)。 Android SDKツール25.2.5、Android SDKプラットフォームツール25.0.5、Android SDKビルドツール25.0.2(25.0.3は利用可能ですが、SDKマネージャでの更新は推奨されていません、なぜですか?) –

+0

Androidスタジオでインスタント・ランを使用する可能性はありますか?設定から無効にし、問題がまだ存在するかどうかを確認してください。 – ahasbini

答えて

3

質問に対するコメントを要約すると、インスタント実行が有効になっていると、生成されたデバッグAPIにはデバイスAPI固有のコードが含まれるため、ビルドされていない他のAPIでは使用できなくなります。インスタント・ランをオフにするとそれが解決されます。

関連する問題