Androidの開発をしていて、エミュレータでさぁ実行!と思ったらよく下記のエラーが発生します。
Failed to upload XXXX.apk on device 'emulator-5554'
java.io.IOException 発生: Unable to upload file: Local file doesn't exist.
Launch canceled!
emulator-5554に実行ファイル(apkファイル)をアップしたいけど
apkファイルがねーよ、と。そういう旨のエラーです。
------------------------------------
一瞬、え?となりますが、これは実際正しいことを言っていて
確かに該当プロジェクトフォルダのbinフォルダを見てみると、apkファイルがありません。
恐らくデフォルトの設定では、
プロジェクト(P)->自動的にビルド にチェックが入っており、
ファイルを保存する度にビルドが行われ、常にapkがある状態になるはずです。
じゃなんでapkファイル無いのさ?と言う話なんですが・・・。
調べてみたところ、私の環境で発生する条件は見つかりました。
ややこしいのですが、別のエラーと絡んでいます。
エラーに至る経緯、細かく書くと長いのでざっくりと
---------------------------------------------------------------------------
1.main.xmlを編集
2.確認するために実行
3.実行対象が main.xml のまま実行しようとしてしまう
4.main.out.xml というファイルが出来てしまってエラー
※ res\layout\main.xml:0: ERROR Resource entry main is already defined.とか出ます
5.一度発生してしまうと、main.out.xmlを削除しない限り同様のエラーで実行できない
---------------------------------------------------------------------------
と言う感じです。
(strings.xml でも同様に発生します。メッセージは違いますが)
エラーを出してしまうとapkが消えてしまいます。
エラーを解消する為に main.out.xml を削除しても
「ファイルを保存」していない為、自動的にビルドのオプションが働かず、結果的に
実行ファイルが無いという状態になってしまっていました。
一応の解決法は、
ソースでもちょっと改変(Enter⇒BSとか)して上書き保存すれば改めてビルドされるので
それでapkファイルは生成され、通常通り動くようになります。
もしくはビルドを常に手動で・・・っていう感じでしょうか?
------------------------------------
エラーで検索したけど意外と引っかからなかったので、メモがてら。
もしかして超当たり前な話なのかも。
僕も悩んでたので、助かりました(感謝)
返信削除コメントありがとうございます!
返信削除お役に立てたようで、嬉しい限りです。