XmlPullParserException: PI must not start with xml .. でパースできない(BOM付きxmlの扱い)

utf-8xml、bom付きのファイルを解析する必要があったが、
そのままPullParserに入れると落ちてしまった。

ファイルそのものの保存形式を変えたいと真っ先に思ったが、
諸々の都合でそれは出来ず…

調べると、やはりbomを何とかしないといけないようで、
HttpGetで取得したbyte array(下記の変数result)の値を、

String xmlStr = "";

if(result[0] == (byte)0xEF && result[1] == (byte)0xBB && result[2] == (byte)0xBF){

 //UTF-8 BOM付きであれば頭削除

 xmlStr = new String(result, 3, result.length - 3 , "UTF-8");

}else{

 xmlStr =  new String(result, "UTF-8");

}

というように、頭にbomがあればトリムして文字列化した物を
PullParserに渡すようにしたら、無事エラーは起きなくなった。

参考:http://www.geekality.net/2011/05/23/java-how-to-deal-with-the-bom-in-a-unicode-inputstream/

【Java】特定のclassのstaticなプロパティに、動的にアクセスしたい

大量にある、連番のstaticなstring propertyに一気にアクセスさせたいと思い…調べると、以下のような事で実現可能だった。(まあ…javaなのでちゃんとclass設計しておけば、このようなバグを招きやすいような処理を入れることもないでしょうけど…(^o^))


Class utils = Utils.class;//Utils classへの参照を取得

  Field keyName = utils.getField("STATIC_FIELD_SAMPLE" + 0);//"STATIC_FIELD_SAMPLE0"というstatic propertyへの参照を取得

  String resultStr = (String)keyName.get(null);//"STATIC_FIELD_SAMPLE0"に設定されている(この場合は)文字列を取得

(※本来は、上記はtry〜catchで囲わないと警告が出ると思われます)

Androidで実行時、windowのbackgroundに画像を設定していると、遷移時にdefault.pngが透ける

Androidで実行時、windowのbackgroundに画像を設定していると、遷移時にdefault.pngが一瞬透ける(初回は抜けない、2度目以降に抜け出す。default.pngを表示しない設定にすると、今度は真っ黒な表示が一瞬出る)という問題が3.0でも未だに直っていない…。(iOSでは問題無い)

なので、開かれる側のwindowにはほぼ必ずviewを置くと思うので、そこのbackgroundに指定する必要がある。

…3.0で結構Androidが改善されたというアナウンスが合ったけど、あまり2.0系と変わっていないような…

Program launch failed. Unable to locate Java VM. Please set JAVA_HOME environment variable.

Android用apkをwindowsでビルドしようとした時、

Program launch failed. Unable to locate Java VM. Please set JAVA_HOME environment variable.

http://developer.appcelerator.com/question/139068/tistudio-win7-64bit-program-launch-failed-unable-to-locate-java-vm-please-set-javahome-environment-variable
というエラーが出た場合、
システム環境変数の変数に「JAVA_HOME」が設定されているのを確認するのはいいとして
(いつもいろいろ追加していく「path」ではなく、新規の変数を作る必要がある)、
さらに、そもそもTitanium3.0になった今でも、JDK1.7に対応していないのか、
1.6にpath一式を切り替えないと、上記のエラーが出続けていた。

mapviewのannotation長押しでデフォルトのピンに戻ってしまう問題など

・mapviewのannotationを長押しで、なぜかデフォルトの赤いピンに戻る

→ MKPinAnnotationViewではなく、MKAnnotationViewを使う。
(※http://stackoverflow.com/questions/9275959/annotation-image-is-replaced-by-redpushpin-when-long-press-on-annotation


・置いたピンを押しても、ウインドウが出てこない

→annotationに、少なくともtitleが設定されていないと、反応しなくなる。

Titanium/Androidモジュールの作成でdocs does not exist…

C:\Users\UserName\AppData\Roaming\Titanium\mobilesdk\win32\2.1.4.GA\module\android\build.xml:455: C:\Users\UserName\Desktop\work\MyModuleName\build\docs does not exist.

 
というエラーが。…なんて事は無く、文字通り、buildフォルダに「docs」というフォルダを作った後、再ビルドで最後まで行けた。