Android Studio で Installation Failed と出る問題の解決方法

Android StudioからKotlinで開発していくうち、
ビルド、インストールしようとしても、何度やっても「Application Installation Failed」となってしまう問題に行き当たったので対策のメモです。
Intelli J IDEAでも遭遇するかもしれません。

Android Studio でRunボタンを押して、ビルド、エミュレータ・端末へのインストールが始まった後に、

Application Installation Failed in Android Studio

こんなエラーに行き当たりました。
続きを読む Android Studio で Installation Failed と出る問題の解決方法

ドコモ iPhone/Android でSMSが届かない時の対処方法(画像あり)

あるときからSMSメッセージを受け取れなくなってしまい、Xperia Z(SO-02E)の問題?と思って試行錯誤していたらドコモの設定でSMS拒否設定になっていたようです。

ドコモ側の設定で制限されているということは、Android, iPhoneなどの機種に関係なく発生する問題ですね。

SMSメッセージを送信できない、という方も、実は自分が受信できていないだけかもしれません。

解決方法として、SMSの受信設定の方法を画像付きで公開しておきます。

続きを読む ドコモ iPhone/Android でSMSが届かない時の対処方法(画像あり)

Android入門 アプリ開発の基本、ビューのライフサイクル(図解)

Android アプリケーション開発では、いつどのイベントが発生するかを知っておくというのは大事な事です。

アクティビティを実装する場合はアクティビティのイベントがいつ発生するか(ライフサイクル)が大事ですし、自分でビューを作る時はビューのイベントを把握しておくとスムーズに実装ができるようになります。

Androidのアクティビティについてはいつどのイベント公式サイトのアクティビティライフサイクルの項目で分かりやすく図示されているのですが、ビューのライフサイクル、イベントの詳細を見つけられなかったため、今回は整理も兼ねてこの記事を公開することにしました。

Android の View は Activity#setContentView() を呼ぶだけでも onFinishInflate(), onAttachedToWindow(),onLayout(),onDraw(),onMeasure()といったイベントが発生するのをご存知でしょうか?

どのタイミングでどのイベントが呼ばれるのか?

カスタムビューを作る時に処理をどのイベントに実装すべきかを悩んでいる方の助けになれれば幸いです。 続きを読む Android入門 アプリ開発の基本、ビューのライフサイクル(図解)

【Android】 ndk-build clean でシンタックスエラー。原因はNDK r8eのバグか?

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 でも再現するという情報をいただきました。対策も同様でいいそうです。

【Android】9-patchが動かない?そんな時に確認する4つのポイント

Droid20130321
せっかくAndroidデザインのために頑張って画像にナインパッチ(9pach)を使ったのに、ちゃんと効かない。
画像の周りの黒い点が見えてしまってる。さぁどうしよう。

そんな時は騒がず慌てず4つのポイントをチェック。 続きを読む 【Android】9-patchが動かない?そんな時に確認する4つのポイント

【Android】背景画像のリピートが効かない問題

画像のコストを下げるために、背景画像に tileMode=”repeat” を指定してタイルとして使っていたのですが、
Android 2.3 系以下の端末で特定のアクティビティでだけリピートが聞かなくてハマりました。

どうやらハニカムで修正されたOSの不具合だそうで…以下対策がわかったのでメモ。 続きを読む 【Android】背景画像のリピートが効かない問題

【Java】 Mapを値でソートする方法

Javaでソート対応のマップと言えばTreeMapだけど、TreeMapはキーのソートにしか対応してません。

マップの値でのソートはオブジェクト外の要素でソートしたい時などは値でのソートが出来ると便利ですので、今回はその方法をご紹介します。

続きを読む 【Java】 Mapを値でソートする方法

WebViewでshouldOverrideUrlLoading()が反応しない問題

StackOverflowでも”shouldOverrideUrlLoading(…) not executed if “window.location.href” modified in a timeout callback“と報告されているが、WebViewで JavaScript から location.href を書き換えると通常shouldOverrideUrlLoading()が反応するのに setTimeout()を使用して location.href を書き換えた場合は shouldOverrideUrlLoading() が呼ばれません。 続きを読む WebViewでshouldOverrideUrlLoading()が反応しない問題

Android Javaの正規表現の落とし穴

Androidで正規表現を使っていて、全角のパターンマッチで少しはまったのでメモ。

Javaでは他の正規表現エンジンと同様、POSIX文字クラスが利用できます。

if("Hello".match("^\\p{Alpha}+$")){
System.out.println("アルファベットだけ!");
}

続きを読む Android Javaの正規表現の落とし穴