*************************************************
■まえおき~■
C++、C、アセンブラをちょっと・・・くらいしかしてこなかったので、久々にお勉強を・・・(;´▽`A``
そうだ! javaってみよう!
そうだ! どうせならAndroidで!
そんなこんなで手探りなAndroidの日々を綴ります。綴るっていうか、メモです。メモです。
※手探りにつき、変なこと書いているかも・・・詳しい方、フォローもらえると嬉しいです!
*************************************************
■つまずいた!(emulator編)
■ずっとEclipce(Android2.3.3)開発していたのに、なぜか今日はemulatorが死ぬ…
「問題が発生したため、emulator-arm.exe を終了します。 ご不便をおかけして申し訳ありません。」
のダイアログが表示され、emulatorが落ちてしまう。
追加したActivityが誤動作しているのかしら?とも考えたのですが、追加した画面で落ちるわけでもなく、落ちる場所もまばら。
昨日まで動いていたのになぜ?
検索してみたけれど、メモリ不足が考えられるとのこと。
いや、でもメモリは十分だよ? うんうんなってたら、下記の情報が。
SDKロケーションのパスにスペースが入ってるのが悪い?
確かに
C:\Program Files\android-sdk-windows
こうなっていた。
C:\android-sdk-windowsに持っていき、
「ウィンドウ>設定>Android」 の 「SDK ロケーション」 のファイルパスを変更したら動いた。
でも昨日までは動いていたんだ!どうしていきなり?
■Eclipce(Android2.3.3)でずっと開発していたのですが、今回Android4.0.3でプロジェクトを作成してみた。
「emulator-5554 disconnected! Cancelling ' (パッケージ名) activity launch'!」
とコンソールに表示されてemulatorが起動できない。
emulator画面が起動後、「問題が発生したため、emulator-arm.exe を終了します。 ご不便をおかけして申し訳ありません。」のダイアログ表示後に落ちるのです。
下記を参考にして何とか解決。
http://d.hatena.ne.jp/todomasa/20100806/1281085604
上記にある、
1《実行》-《実行構成》を選択
2実行構成ウィンドウの《共通》タブを開きます
3画面下の「バックグラウンドでの起動」チェックボックスを外します
これで何とか解決。
したと思ったら、そうでもない…なんどか修正→起動を繰り返していたら、再び同じダイアログ出現。
もうよくわかんない。
■Android2.3.3で実行していたものをAndroid4.0.3で実行してみた。
コンソールに
org.eclipse.swt.SWTException: Invalid thread access
が表示されて、アプリ画面が固まる。……よ、よくわからない。いつか調査。
→よくわからないまま、別のPCでもういちどSDK等を入れなおしてみた。
動くようになった……。
そのプロジェクトをさらに、元のPCに持ってきてインポートしてみた。
「Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please use Android Tools > Fix Project Properties.」
がコンソールに表示。なんだね、これは?
コンパイラのレベルが違うの? そんなわけで、もとのPCのEclipce環境と比較してみた。
確かに違った。
プロジェクトを選択して右クリック→「プロパティー」→「Javaコンパイラー」
ここで、プロジェクト固有の設定にチェックを入れる。
JDK準拠のコンパイラー準拠レベルを変更。カラムは1.7→1.6にした。
動いた。
■ほかのPCから持ってきたアプリをインポートして実行すると
「Your project contains error(s),please fix them begore running your application」が出た。
→クリーンすればいいとのこと
してみたらクリーンできなかったとエラーダイアログがでた。
ソースの一部を修正して、もういちどクリーンしたら直った。
■Eclipseで実行したらタイムアウトになった。
コンソールにこんなんでました。
========================================================
Failed to install Test.apk on device 'emulator-5554': タイムアウト
起動はキャンセルされました!
========================================================
えー。さっきまで起動できてたのに!
ビルドもできている。だけど、起動しようとするとタイムアウトでアプリがインストールできていない!
(エミュレータ自体は起動する)
どうも、AVD上にアプリをインストールする段階でタイムアウトが発生している。メモリやCPUのマシンスペックが低いと起こったりするらしい。
ので、タイムアウトの時間を調整してみる。
Eclipseの「ウィンドウ」→「設定」→「Android」→「DDMS」→「ADB接続タイム・アウト(ミリ秒)」
上記を5000→10000に変更してみた。
うむ。同じタイムアウトだ。チクショウ。というわけで、更に上記を50000に。
ついでにビルドクリーンをしてからの実行。
ちゃんとインストールできたよ!