エントリーポイントとは、アプリを起動した時に最初に表示されるアクティビティのことらしいです。AndroidMainifest.xmlのintent-filter要素にandroid.intent.action.MAINがあるものがエントリーポイントになるんですが、このandroid.intent.action.MAINって複数のアクティビティに設定できるみたい。
そういった時にはandroid.intent.category.LAUNCHERを設定しているものがエントリーポイントになる。
とりあえずメモ。
[2013-11-19 16:01:43 - Dex Loader] Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
[2013-11-19 16:01:43 - SkeletonActivity] Conversion to Dalvik format failed: Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
[2013-11-19 16:01:43 - SkeletonActivity] Conversion to Dalvik format failed: Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
とりあえずサンプルアプリであった「SkeletonActivity」を実行しようと思ったのですが、上記のエラーが出て困った。
\workspace\.metadata
にログがあるので見てみても良くわからず、Build Targetを変更したりしていたのですが、最新版にしてみたら上手くいきました。他はことごとく失敗。
もしかしたらSDKをアップデートしたら、Build Targetも最新に変更た方が良いのかもしれません。
Windowsストアアプリで加速度,地磁気センサのデータをゲットして,それをjavaのプログラムにsocket通信で渡すというプログラムを書いていたんですが,どうしても1割くらいの確率で,データが欠損してしまう.例えば
こういう文字列を送ると
こうなって来ることがある.
よくわからないから,if文に正規表現を使って欠損データを除外しようと思って,以下のように書いてみた.
しかし,正しいデータが来てるのにどうしても真にならない.
小一時間色々試して悩んでいたら,以下のサイトを見つけた.
正規表現の利用方法
するとなんだかよくわからんが,PatternとMatcherを使うといいらしい…
とりあえず書き直してみる.
なんとかこれで通りました(笑)
なんで直接比較したらダメなんだろ??
Azimuth:133.9:x:0.109:y:-0.168:z:-0.958
こういう文字列を送ると
9:y:-0.168:z:-0.958
こうなって来ることがある.
よくわからないから,if文に正規表現を使って欠損データを除外しようと思って,以下のように書いてみた.
String inputLine = br.readLine();
String comp = "Azimuth:\\d{1,3}.\\d:x:-?\\d.\\d{1,3}:y:-?\\d.\\d{1,3}:z:-?\\d.\\d{1,3}";
if(inputLine.equals(comp)) {
中略
}
String comp = "Azimuth:\\d{1,3}.\\d:x:-?\\d.\\d{1,3}:y:-?\\d.\\d{1,3}:z:-?\\d.\\d{1,3}";
if(inputLine.equals(comp)) {
中略
}
しかし,正しいデータが来てるのにどうしても真にならない.
小一時間色々試して悩んでいたら,以下のサイトを見つけた.
正規表現の利用方法
するとなんだかよくわからんが,PatternとMatcherを使うといいらしい…
とりあえず書き直してみる.
String inputLine = br.readLine();
String comp = "Azimuth:\\d{1,3}.\\d:x:-?\\d.\\d{1,3}:y:-?\\d.\\d{1,3}:z:-?\\d.\\d{1,3}";
Pattern p = Pattern.compile(comp);
Matcher m = p.matcher(inputLine);
if(m.find()) {
中略
}
String comp = "Azimuth:\\d{1,3}.\\d:x:-?\\d.\\d{1,3}:y:-?\\d.\\d{1,3}:z:-?\\d.\\d{1,3}";
Pattern p = Pattern.compile(comp);
Matcher m = p.matcher(inputLine);
if(m.find()) {
中略
}
なんとかこれで通りました(笑)
なんで直接比較したらダメなんだろ??