ラボノート - 最新エントリー
Androidアプリ用のワークスペースを新規作成した後、僕がやっている設定をまとめておきます。
中規模以上の開発になると、リソース画像の管理や、それぞれに9-patchを当てるのが大変な作業になります。
特に、色違いのボタンのように、実質同じなのに、ファイルとしては別なので別々に作業しなければならないのは、全く無駄な時間と言っても過言ではないでしょう。
そこで補助的な手段として、Draw9patchに、既に9-patchが当てられている画像から9-patch情報をコピーするという「Copy from...」機能を追加しました。
【対症療法】 ライブラリプロジェクトを参照&名前空間付き属性を設定すると、エラーが発生する
- 執筆 :
- keiji_ariyama 2011-2-9 1:57
lycheeさんのTweetを見て知ったのですが、ライブラリプロジェクトで作ったカスタムビューを、参照したプロジェクトから扱う場合に、ライブラリプロジェクトの名前空間(xmlns)を設定すると、ビルドが出来ないという現象があります。
この現象は、Issueにも上がっています。
http://code.google.com/p/android/issues/detail?id=9656
ここから先は長くなるので、結論から。
ライブラリプロジェクトを参照したプロジェクトからカスタムビューを使うときは、参照したプロジェクトの名前空間を使いましょう。
また、ライブラリプロジェクトのカスタムビューで、XMLの属性値を取りたいときは、名前空間を固定にするのではなく、Context#getPackage()を取って動的に作る事を推奨します。
String NS = "http://schemas.android.com/apk/res/" + context.getPackageName();
int val = attrs.getAttributeIntValue(NS, "customValue", -1);
こうすれば、エラーは発生せず、カスタムビューで属性値を取得したり、参照したプロジェクトでカスタムビューの属性値を上書きしたり出来ます。

40名という多くの方を対象としたハンズオンは始めての経験です。また、愛知工業大学の設備が非常に充実していて、こんなところで話をさせてもらって本当にいいのかと、正直、気後れしてしまいました。
けれど、つ部や日本Androidの会 東海支部の方々のサポートもあって、無事に終えることが出来ました!

つ部や日本Androidの会東海支部の皆さん、また、参加してくださった皆さん、本当にありがとうございました。
また、行きますね!
(写真提供:ITPro様)
Eclipse Android JUnit で Argument not valid エラー
- 執筆 :
- keiji_ariyama 2011-1-2 23:44
EclipseのADT(Android Development Tools)でJUnitを実行するために、Run configuration(実行構成)ダイアログから実行構成を設定しようとすると"Argument not valid"エラーがSWTで発生して、以後、Android関係の実行構成を表示できなくなるという不具合に遭遇した。
再現方法は以下の通り。EclipseはHelios及びGalileo、OSはWindowsとUbuntuでの発生を確認している。
- Eclipseを起動して、適当なプロジェクトを追加。その際、テストプロジェクトも同時に追加する
- Eclipseの"Run configurations"ダイアログを開く
- "Android Applications"をダブルクリックして、「New_configuration」を新規作成しておく(必須ではない)
- "Android JUnit Test"をダブルクリックして、「New_configuration」を新規作成
- 新規作成後、"Android Applications"のNew_configurationをクリックして画面を切り替える
すると、"Android Applications"の実行構成の画面が表示されず、下のようなエラーが表示される。また、"Android JUnit Test"以下の実行構成についても同じエラーが表示される。

この現象は、Eclipseを再起動(restart)するまで継続する。また、再起動後も"Android JUnit Test"の構成を表示すれば、現象は再発する。
結論から言えば、この不具合を修正したバージョンのADTを用意した。下記リンクからダウンロードできる。
また、修正内容をAndroid Open Source Projectのレビューサーバーに送っているので、こちらも合わせて参照頂きたい。

