2012年3月24日土曜日
EclipseでInitializing Java Tooling Errorの時の対策の要点だけ
Androidアプリの開発でEclipseを使っていて、Eclipseの起動時に"Initializing Java Tooling"でエラーになるとか、謎のエラーに悩まされたのでその対策メモ。
環境はOSX Snow Leopard + Eclipse(Indigo)。
このエラーを消すには、Eclipseをいったん終了後、workspaceのルートにある.metadataディレクトリを消す。
その上で、Eclipseを再起動すれば良い。
そうするとProjectはワースクペースから消えてるので、インポートし直す必要はある。
それか新規にworkspacewを作るでもOKですね。
2012年3月18日日曜日
Androidデバイス上でIntentが使えるかどうかのチェック方法の要点だけ
PackageManager#queryIntentActivities (Intent intent, int flags) を利用すればOK。flagはPackageManagerの定数。
2012年3月16日金曜日
2012年3月12日月曜日
ライブ壁紙でタッチイベントを取得する方法の要点だけ
Androidのライブ壁紙でタッチイベントを取得して、何かエフェクトをかけたり、動作をさせたりしたいときのやりかた。
端的には、WallpaperService.EngineのonTouchEvent(MotionEvent event)またはonCommand(String action, int x, int y, int z, Bundle extras, boolean resultRequested)いずれかをオーバーライドすれば良い。
大きな違いとして、onTouchEventは、アプリのアイコンをタッチしたときなんかもイベントが発生してしまうのに対して、onCommandは、HOME画面中何もないところをタッチしたときだけにイベントが発生する(actionのところに"android.wallpaper.tap"というのが来て、x, yで座標が分かる)。これはHOMEアプリから発行されるイベントのようで、デフォルトのHOMEアプリ利用時に発生しないというような記述をどこかで見かけたけど、これは未確認。
なお、ライブ壁紙上の操作から何かしらIntentを発生させたい時は、通常どおり新規のIntentを作成してContext#startActivity()してやれば良いが、IntentにIntent#setFlag(Intnet.FLAG_ACTIVITY_NEW_TASK)をしてやる必要がある。これをしないとExceptionが発生するよう。
端的には、WallpaperService.EngineのonTouchEvent(MotionEvent event)またはonCommand(String action, int x, int y, int z, Bundle extras, boolean resultRequested)いずれかをオーバーライドすれば良い。
大きな違いとして、onTouchEventは、アプリのアイコンをタッチしたときなんかもイベントが発生してしまうのに対して、onCommandは、HOME画面中何もないところをタッチしたときだけにイベントが発生する(actionのところに"android.wallpaper.tap"というのが来て、x, yで座標が分かる)。これはHOMEアプリから発行されるイベントのようで、デフォルトのHOMEアプリ利用時に発生しないというような記述をどこかで見かけたけど、これは未確認。
なお、ライブ壁紙上の操作から何かしらIntentを発生させたい時は、通常どおり新規のIntentを作成してContext#startActivity()してやれば良いが、IntentにIntent#setFlag(Intnet.FLAG_ACTIVITY_NEW_TASK)をしてやる必要がある。これをしないとExceptionが発生するよう。
2012年2月15日水曜日
AndroidアプリをAntでビルドするための要点だけ
Jenkinsとかに興味が出てきたので、AndroidアプリをAntでビルドするための方法について調べた。
ドキュメントにはコマンドラインのandroidツールからプロジェクトを作成するとbuild.xml(Antの設定ファイル)が生成されるとあるけれど、
実際に必要なのは以下のgithubに置いた3ファイル。あとはEclipseで生成できる普通の(?)プロジェクトでOK。
https://github.com/hkurosawa/android_ant
(1)↑にある3ファイルをプロジェクトのルートディレクトリに展開する
(2)local.propertiesがAndroid SDKを指すように変更する
(3)ant.propertiesがkeystoreおよびalias名を指すように変更する(配布用の署名までAntで行う場合)
使い方やターゲットはプロジェクトのルートで$ antとすれば出てくる。
ところで、プロジェクトに生成されるbuild.xmlはほとんど空で、実体は{sdk}/tools/ant/build.xmlをincludeしているみたい。
[追記]
$ android update project --path /path/to/project すれば、コマンドラインから必要なファイルを生成してくれるみたいで、このエントリあんまり意味ないことに気づいた。
ドキュメントにはコマンドラインのandroidツールからプロジェクトを作成するとbuild.xml(Antの設定ファイル)が生成されるとあるけれど、
実際に必要なのは以下のgithubに置いた3ファイル。あとはEclipseで生成できる普通の(?)プロジェクトでOK。
https://github.com/hkurosawa/android_ant
(1)↑にある3ファイルをプロジェクトのルートディレクトリに展開する
(2)local.propertiesがAndroid SDKを指すように変更する
(3)ant.propertiesがkeystoreおよびalias名を指すように変更する(配布用の署名までAntで行う場合)
使い方やターゲットはプロジェクトのルートで$ antとすれば出てくる。
ところで、プロジェクトに生成されるbuild.xmlはほとんど空で、実体は{sdk}/tools/ant/build.xmlをincludeしているみたい。
[追記]
$ android update project --path /path/to/project すれば、コマンドラインから必要なファイルを生成してくれるみたいで、このエントリあんまり意味ないことに気づいた。
2012年1月5日木曜日
2012年1月4日水曜日
keytoolコマンドでapk署名用のkeystoreファイルの作成の仕方の要点だけ
<script src="https://gist.github.com/1559067.js?file=gistfile1.sh"></script>
Labels:
android,
Android Market,
develop
登録:
投稿 (Atom)