Android

Reproでプッシュ通知を受け取る際にSmall Iconが表示されない場合の対処方法

概要 Reproでプッシュ通知を受け取る際に、NotificationCompat.BuilderのsetSmallIconでiconのリソースを指定していても通知に表示されない場合の対処方法について。 対処方法 AndroidManifestのapplicationタグに以下のようなmeta-dataを追加します。 <meta-data android:name="io.repro.android.PushNotification.SmallIcon" android:resource="@drawable/YOUR_ICON_ID"> </meta-data> こ…

既存のURL文字列にUri.Builderでクエリを追加する方法

既存のURLにUri.Builderを使ってクエリを追加する場合こうする。parse後にbuildUpon()で繋ぐのがミソ。 val url = Uri.parse("既存のURL") .buildUpon() .appendQueryParameter("key", "value")

英語でKotlinを勉強するためのリソース

Android DevelopersのKotlinのページにはResources to Learn Kotlinというページがあります。 Resources to Learn Kotlin | Android Developers このページにはタイトル通りKotlinを学ぶためのリソースのリストが載っていて、以下のカテゴリに別れています。…

BuckでのAndroidプロジェクトのビルドについて

概要 Facebook製ビルドツールBuckをインストールし、サンプルとして公開されているAndroidプロジェクトをビルドしてみます。 Buck? BuckはFacebookが開発しているビルドツールです。 buckbuild.com 公式サイトではBuckの特徴が解説されています。ビルドが高…

GoogleMapのMapFragmentを取得した際にNullPointerExceptionが発生する場合の対処方法

概要 以下のようなコードでGoogleMapを表示しようとしたところNullPointerExceptionが発生した。 GoogleMap googleMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap(); UiSettings uiSettings = googleMap.getU…

KotlinでAndroidアプリをビルドしてみる

最近Kotlinの話題を聞く事が多くなってきたので、Kotlinでプロジェクトを作成し、HelloWorldアプリをビルドするところまでやってみる。 公式サイトを見ながら環境を構築していく。 Kotlin Pluginのインストール IntelliJ IDEA 15は最初からKotlin Pluginが入…

AsyncTaskでtimeoutを指定する方法

AsyncTaskを利用してAPIへリクエストする際にTimeOutを指定したい場合がある。そのやり方のメモ。 final SampleTask task = new SampleTask(); task.execute(); // TimeOut処理 new Thread(new Runnable() { @Override public void run() { try { // TimeOut…

Cloud Test Labドキュメントのざっくり翻訳

概要 Cloud Test Labのドキュメントが公開されていたのでトップページだけざっくり翻訳してみた(英語は得意じゃない)。 原文 cloud.google.com [翻訳] Google Cloud Test Lab Google Cloud Test Labは、クラウドベースのAndroidアプリテスト環境を提供します…

java.net.SocketException: socket failed: EACCES (Permission denied)が発生した時の対処方法

AndroidでCalabashのテストを実行した際に以下のエラーが発生した。 Error message 'java.net.SocketException: socket failed: EACCES (Permission denied)' 原因はパーミッションが足りないから。AndroidManifest.xmlに以下を追加。 <uses-permission android:name="android.permission.INTERNET"/> 参考 stackoverflow.c</uses-permission>…

AWS SDKを使いDeviceFarmでのテストをスケジューリングする

概要 AWS SDKを使用してDeviceFarmへAPKとテストコードをアップロードし、Calabashによるテストを実行してみたのでそのメモ。 APIドキュメントと使用するSDK ドキュメントは以下を参照した。 http://docs.aws.amazon.com/sdkforruby/api/Aws/DeviceFarm.html…

AWS Device Farm APIでプロジェクト情報を取得する

概要 AWS Device FarmのAPIが公開されていたので試してみた。 AWS CLIのインストール 今回はAWS CLIを使ってみる。ドキュメント通りにCLIをインストール。 $ sudo pip install awscli 認証情報の設定 ドキュメントに従い設定。AWS Device Farmがオレゴン限定…

build.gradleからの環境変数の参照

build.gradleからの環境変数の参照 CIサーバなどで以下のように環境変数を定義する。 export ORG_GRADLE_PROJECT_TEST="hoge" ORG_GRADLE_PROJECT_propertyと定義すると、propertyという変数名でbuild.gradleから参照できる。 apply plugin: 'com.android.ap…

GradleでJavaDocを出力する

ターミナルからコマンドでJavaDocを出力できるようにしてみる。 build.gradleの修正 JavaDocを出力したい対象(moduleとか)のbuild.gradleに以下を追加。 android.libraryVariants.all { variant -> if (variant.name == "debug") { return } task("generateJ…

Robolectricで標準出力にログを出力する

Robolectricを使いテストを実行する際に、AndroidのLogクラスでログを出力したい時があったのでメモ。 調べてみると、ShadowLogクラスのstreamフィールドの値を変更すれば良いようです。 テストコードでこんな感じに書いておきます。 @Before public void se…

Robolectricで「volley/res/values is not a directory」と言われた場合の対処方法

Robolectricを使ってテストを実行した際に以下のようなエラーが発生した。 java.lang.RuntimeException: java.lang.RuntimeException: ../volley/res/values is not a directory volleyはAndroid用ネットワークプログラミング用ライブラリで、そのパッケージ…

結婚式の準備とAndroid

週末の結婚式の準備に追われております。新郎の挨拶を考えてるのですが難しいですね。 さて仕事では急にAndroidをやることになりました。Androidはサンプル動かしたぐらいで素人同然なのでこれから勉強していこうと思います。 で、どう勉強しようかと考えた…