ラベル Android の投稿を表示しています。 すべての投稿を表示
ラベル Android の投稿を表示しています。 すべての投稿を表示

2013年7月31日水曜日

format not a string literal and no format arguments

PowerVRのサンプルコードをビルドしていてこのエラーに遭遇したので備忘録として残しておきます。

以下のリンクはcocos2d-xのようですが、似たような状態かもしれません。
http://www.cocos2d-x.org/boards/6/topics/32369?r=32373

Try to replace__android_log_print(ANDROID_LOG_DEBUG, "cocos2d-x debug info", buf);with__android_log_print(ANDROID_LOG_DEBUG, "cocos2d-x debug info", "%s", buf);Does it help?

追記:
addon-powervr_graphics_sdk_3_1_-_opengl_es2_0-imagination_technologies_ltd-10/shell/OS/Android/PVRShellOS.cpp
PVRShellInit::OsDisplayDebugString
_android_log_printを上記のように書き換えることでビルド成功

2013年6月21日金曜日

Android+facebook

Facebook SDK for Androidが提供されています。
https://developers.facebook.com/android/

ドキュメントも充実しています。
Shareボタンの実装には以下のドキュメントを参考になります。
https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android/3.0/
https://developers.facebook.com/docs/howtos/androidsdk/3.0/publish-to-feed/


ハマりどころとしては、Android端末にインストールされているfacebookアプリのバージョンが古いと認証がうまくいかないようです。

2011年10月20日木曜日

Admob続き

ゲームでAdmobを利用する場合、すでにActivityに対してSurfaceViewを継承したView(仮にGameViewとします)を使っていると思います。Admobを利用するためには、さらにAdViewを追加します。この時、どのタイミングでAdViewがaddされるかは不定のようです。1分くらい待っても追加されないこともありました。AdViewが追加されると画面の作りによってはレイアウトが乱れると思います。その場合はAdViewが追加され、GameViewの大きさが変更されるとsurfaceChangedが呼ばれるのでここで任意の処理を行えばよさそうです。

Admob

Android Admobで検索すると、古いバージョンでの実装方法が多く見つかりました。
最新のSDKを落とすと、そこの説明にあるAdManagerというクラスが見つからずつまづきました。

現時点での最新の情報は下記が参考になります。というかそのままです。
http://code.google.com/mobile/ads/docs/android/fundamentals.html

古いバージョンより最新バージョンの方がかなり簡単に実装できます。
コピペしてつまづくとしたら、MY_AD_UNIT_IDは定義されていないので、説明にもある通りパブリッシャIDで置換してください。またAPI Level 7で確認していますが、下記属性はありませんでしたが、特に設定しなくても問題ありませんでした。

uiMode
screenSize
smallestScreenSize

ちなみにuiModeはAPI Level 8から、screenSizeとsmallestScreenSizeはAPI Level 13から導入されたようです。
下記activityの属性説明で確認しました。
http://developer.android.com/intl/ja/guide/topics/manifest/activity-element.html

2011年8月9日火曜日

着信イベントの受信


TelephonyManager#listen で着信イベントの受信ができます。
その時、PhoneStateListener のインスタンスを渡します。
解除する時も同じインスタンスを渡さないと解除されません。

2011年8月5日金曜日

startActivity called from non-Activity context

startActivity called from non-Activity context; forcing Intent.FLAG_ACTIVITY_NEW_TASK for: Intent...

アクティビティではないコンテキストからアクティビティの開始が呼ばれました。
Intent に Intent.FLAG_ACTIVITY_NEW_TASK をつけておきました。

出力レベルはワーニング。
ActivityGroup に TabActivity を乗せて、さらにその TabActivity に乗せた Activity から呼んでいるのが原因のような気がします。

Intent に対して明示的にフラグを付与すればワーニングは消えます。

intent.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK );

これでどうしてワーニングが消えるのかわからないでいます。

2011年8月4日木曜日

Tabに設定したActivityからのダイアログ表示

new AlertDialog.Builder( this )...
では、エラーが発生する。詳細はこちら。http://unodroid.blogspot.com/2011/05/tab.html

new AlertDialogBuilder( getParent() )...
とし、親のActivityを渡してあげることで解決。
理由は前述のページにあるようにViewRootまで辿ることができず、is your activity running? ちゃんとアクティビティ動いてますか? とエラーになるようだ。

FileFilterの使い方

FileFilter を無名クラスとして実装してあげる。
ディレクトリのみ取得したい場合は、下記の通り

File[] files = file.listFiles( new FileFilter() { public boolean accept( File file ) { return file.isDirectory(); } }; );

2011年7月19日火曜日

Androidの暗号化で利用できるアルゴリズムを調べる

Set<String> names = Security.getAlgorithms( "MessageDigest" );

for ( String name : names )
{
Log.v( TAG, name );
}

APIレベル7での実行結果:

SHA-256
SHA-512
MD5
SHA-1
SHA-384

参考URL: