Google App Engine でアプリケーション名を取得するには?
- 2013年 5月1日
- 投稿者 : ino
投稿者アーカイブ
Android アプリケーション開発では、いつどのイベントが発生するかを知っておくというのは大事な事です。
アクティビティを実装する場合はアクティビティのイベントがいつ発生するか(ライフサイクル)が大事ですし、自分でビューを作る時はビューのイベントを把握しておくとスムーズに実装ができるようになります。
Androidのアクティビティについてはいつどのイベント公式サイトのアクティビティライフサイクルの項目で分かりやすく図示されているのですが、ビューのライフサイクル、イベントの詳細を見つけられなかったため、今回は整理も兼ねてこの記事を公開することにしました。
Android の View は Activity#setContentView() を呼ぶだけでも onFinishInflate(), onAttachedToWindow(),onLayout(),onDraw(),onMeasure()といったイベントが発生するのをご存知でしょうか?
どのタイミングでどのイベントが呼ばれるのか?
カスタムビューを作る時に処理をどのイベントに実装すべきかを悩んでいる方の助けになれれば幸いです。 続きを読む
Android で NDKビルドを動かすとndk-build cleanでエラーになってしまった。
こういうの。
dk-build clean
Clean: gnustl_shared [armeabi-v7e]
/bin/sh: -c: line 0: syntax error near unexpected token `('
/bin/sh: -c: line 0: `rm -rf (TARGET_OBJS)'
make: *** [clean-gnustl_shared-armeabi] Error 1
色々調べたところ、原因は Android NDK r8eの問題のようで
android-ndk/build/core/build-binary.mk
の49行目を次のように修正したらエラーが出なくなった。
変更前:
$(cleantarget): PRIVATE_CLEAN_FILES := ($(my)OBJS)
変更後:
$(cleantarget): PRIVATE_CLEAN_FILES := $($(my)OBJS)
変更後の実行結果:
/Library/android-ndk/ndk-build clean NDK_DEBUG=1 all Clean: cvjava [armeabi-v7a] Clean: gnustl_shared [armeabi-v7a] Clean: gnustl_static [armeabi-v7a] Clean: scv [armeabi-v7a]
再現環境はインストールしたバージョンは NDK r8e の OS X 64ビット版(android-ndk-r8e-darwin-x86_64.tar.bz2)
でした。
他の環境で試したわけではないのですが、他の環境ではこれでエラーがでないのでしょうか。
Linux 64bit r8e でも再現するという情報をいただきました。対策も同様でいいそうです。
あるときからGoogle App Engine(Java)でgsonライブラリを使うと、java.lang.VerifyErrorが発生するようになってしまった。
別の方(GAE/JでGson利用時にjava.lang.VerifyErrorが発生する)」もとりあげているのと同じ現象のようですが、一応対応がわかったのでメモしておく。 続きを読む

せっかくAndroidデザインのために頑張って画像にナインパッチ(9pach)を使ったのに、ちゃんと効かない。
画像の周りの黒い点が見えてしまってる。さぁどうしよう。
そんな時は騒がず慌てず4つのポイントをチェック。 続きを読む
デフォルトだと画面のスクリーンショット画像を撮るとデスクトップフォルダに保存されます。
裏ワザ、隠し機能的ですが、ターミナルから下のようなコマンドを入力すると画像の保存フォルダを変更することができます。
$ defaults write com.apple.screencapture location ~/Pictures $ killall SystemUIServer
ピクチャ以外にも好きなディレクトリにすることもできます。
$ mkdir ~/ScreenShots $ defaults write com.apple.screencapture location ~/ScreenShots $ killall SystemUIServer
戻したくなったら下のコマンドで戻すこともできます。
$ defaults delete com.apple.screencapture location $ killall SystemUIServer
以上、クリーンショット保存先を変える方法でした。
散らかってしまいがちなデスクトップもこれで綺麗に整理整頓されるかも。
画像のコストを下げるために、背景画像に tileMode=”repeat” を指定してタイルとして使っていたのですが、
Android 2.3 系以下の端末で特定のアクティビティでだけリピートが聞かなくてハマりました。
どうやらハニカムで修正されたOSの不具合だそうで…以下対策がわかったのでメモ。 続きを読む
Sublime Text 2 をしばらく使っていて、Mac OS Xで日本語入力のタブ変換が出来ないことにふと気づきました。
ひらがなを入力したら変換候補が出てきますが、ここでタブを押して変換候補を切り替えようとしたら、タブキーを押した途端に変換候補の欄が閉じて、入力中の文字が消えてしまう。
カーソルで変換候補を切り替えればいつも通り入力はできます。
でも、つい癖でタブキーを押すたび、入力をやり直すハメになって、手が止まる…。
これじゃいけないとタブ関係のキーバインドを見なおしたら何とかなったので、
修正方法をメモしておきます。
メニューからPreferences > Key Bindings – Default を開きます。
すると、下のような怪しい部分があるので…
{ "keys": ["tab"], "command": "insert_best_completion", "args": {"default": "\t", "exact": true} },
{ "keys": ["tab"], "command": "insert_best_completion", "args": {"default": "\t", "exact": false},
"context":
[
{ "key": "setting.tab_completion", "operator": "equal", "operand": true }
]
},
これをコメントアウトしてしまいます。
/*
{ "keys": ["tab"], "command": "insert_best_completion", "args": {"default": "\t", "exact": true} },
{ "keys": ["tab"], "command": "insert_best_completion", "args": {"default": "\t", "exact": false},
"context":
[
{ "key": "setting.tab_completion", "operator": "equal", "operand": true }
]
},
*/
あとは保存すればOK。
これで、ストレスなく快適にSublime Text 2を使えるようになりました。
なんでしょうね…。
色々とプラグインを入れて使っているため、何が原因かは不明なんです。
情報求む。
普段から OS Xのパッケージ管理には Homebrew を使っています。
Homebrew に含まれる一部パッケージ(pango)のバージョンを変えてインストールする必要があり、自分でビルドしてみようと思ったところすっかりはまってしまいました。
Homebrew でインストールしたパッケージ(cairo)に依存している箇所でエラーになってしまいました。
具体的には ./configure の実行中に pkg-config で依存しているパッケージの.pc ファイルが存在しないと怒られています。
# config.log pkg-config --cflags --print-errors cairo Package xcb-shm was not found in the pkg-config search path. Perhaps you should add the directory containing `xcb-shm.pc' to the PKG_CONFIG_PATH environment variable Package 'xcb-shm', required by 'cairo', not found
エラーメッセージどおり、環境変数 PKG_CONFIG_PATHの通るところに .pc ファイルを配置するか、環境変数にパスを追加して再実行することで解決しました。
PKG_CONFIG_PATHが空の場合のデフォルトは
/usr/local/lib/pkgconfig
です。
今回は /opt/X11/lib/pkgconfig/ の中に依存している .pcファイルがあったので、パス追加で対応しました。
$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/opt/X11/lib/
再実行し、エラーが出なくなるのを確認します。
$ pkg-config --cflags --print-errors cairo
あとは通常通り、./configure, make などを実行すればOKです。
OS X では(Homebrewでは?) X11 関係の pkgconfigのパッケージ情報ファイル(.pcファイル)は /opt/X11/lib/pkgconfig/ にあるのですね。