Archive for the ‘Android apps’ Category

Android – 画面が暗くなるのを防ぐ

2020年2月26日

https://developer.android.com/training/scheduling/wakelock

HttpURLConnection で FileNotFoundException

2018年11月26日

サーバーがエラーを返した場合は
FileNotFoundException
になるらしい。

https://developer.android.com/reference/java/net/HttpURLConnection#getErrorStream()

package android.support.v4.app does not exist

2018年10月11日

古いプロジェクトを開いたらこのエラーが出た。

https://stackoverflow.com/questions/24545576/package-android-support-v4-app-does-not-exist-in-android-studio-0-8

上記リンクを参照し

app -> Open module settings を開いて
Dependency タブを開き、 “+”をクリック, “com.android.support:support-v4:22.2.1″を選んで OK

Could not find com.android.tools.build:aapt2:3.2.0-4818971

2018年10月11日

古いプロジェクトを久しぶりに開いてみたらこのエラーが出た。
https://stackoverflow.com/questions/52541525/android-studio-3-2-could-not-find-com-android-tools-buildaapt23-2-0-4818971/52542837#52542837

上記のリンクを参照し、build.gradle の allprojects.repositories に google() を追加して解消

Cordova の Androidプラグインをビルドした際のエラーについてのメモ

2018年9月17日

Cordova の Androidプラグインをビルドした際のエラーに関するメモ

1.

“Unable to resolve dependency for ‘:@debug/compileClasspath’: Could not resolve project :CordovaLib. Could not resolve project :CordovaLib.”

以下の記事を参照して解消

https://stackoverflow.com/questions/47023068/unable-to-run-ionic-app-after-update-to-android-studio-3-0

 

2.
FAILURE: Build failed with an exception.

* Where:
Build file ‘D:\work\cordova\helloplugin\platforms\android\build.gradle’ line: 26

* What went wrong:
A problem occurred evaluating root project ‘android’.
> Could not find method google() for arguments [] on repository container.

このエラーはAndroidStudioではGradleのバージョンを4.4に変えると収まるが、Cordobaコマンドでプラグインを削除して追加すると元に戻ってしまう。

以下のリンクを参照して解消
https://stackoverflow.com/questions/37125496/cordova-build-changes-distributionurl-in-gradle-wrapper-properties-file

 

Cannot fit requested classes in a single dex file. Try supplying a main-dex list.

2018年8月29日

外部のjarファイルを組み込もうとしたらこんなエラーが

The number of method references in a .dex file cannot exceed 64K.
Learn how to resolve this issue at https://developer.android.com/tools/building/multidex.html

上記のリンクを参照し、minSdkVersion を 21 以上にして、multiDexEnabled を true に設定することで解決

 

プッシュ通知

2018年8月16日

Google Cloud Messaging (GCM)
http://developer.android.com/google/gcm/gcm.html

AndroidStudio 外部ライブラリ(JAR)を追加する

2018年8月16日

1.プロジェクトに「Module」としてJARファイルを追加
2.Open Module Settings を開いて Dependency > 「+」(追加)> Module dependency から上記のJARファイルを洗濯

FusedLocationApiで現在位置を取得(Android)

2015年5月17日

GoogleMap.OnMyLocationChangeListener なるものを使おうと思ったのですが、APIのドキュメントを見ると 、このInterfaceは”Deprecated” なので FusedLocationApi を使うように、と書いてあり、素直に従うことにします。

FusedLocationApi を利用するために、まずGoogleApiClientを作成します。

mClient = new GoogleApiClient.Builder(this)
.addApi(LocationServices.API)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
mClient.connect();

この例では、呼び出し元クラスにGoogleApiClient.ConnectionCallbacksとGoogleApiClient.OnConnectionFailedListenerを実装し、Connectionの成否をコールバックで受け取るようにしています。GoogleApiClientのConnectが成功したら、FusedLocationApi.requestLocationUpdates() をコールします。Updateされた情報を受け取るために、呼び出し元クラスにLocationListener も実装しておきます。

//GoogleApiClient.ConnectionCallbacks
public void onConnected (Bundle connectionHint)
{
LocationServices.FusedLocationApi.requestLocationUpdates(mClient, LocationRequest.create(), this);
}

位置情報が更新されるとLocationListener.onLocationChanged() が呼び出されるので、そこで位置情報を取得します。下の例では、この位置情報を元にGoogleMapの表示位置を移動させています。

//LocationListener
public void onLocationChanged (Location location)
{
LatLng ll = new LatLng(location.getLatitude(), location.getLongitude());
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(ll, 13));

}

参照リンク
Receiving Location Updates
Making Your App Location-Aware

GoogleMapを使う(Android)

2015年5月12日

GoogleMapを使うアプリを作成してみました。

Android StudioのプロジェクトテンプレートにすでにMapアプリが用意されているので、これを使ってみました。しかし、そのまま実行してみると真っ白の画面しか表示されません。

ログをよく見ると以下のエラーがでています。

E/Google Maps Android API﹕ Failed to load map. Error contacting Google servers. This is probably an authentication issue (but could be due to network errors).

いろいろ探していると、res/values/google_maps_api.xml というファイルに『Google Maps API keyを取得してセットする必要が有る」旨が書いてありました。そこに書いてあった通りの手順で、Keyは簡単に取得できました。その値を google_maps_api.xml にセットすると、無事にマップが表示されました。

マップの初期画面

マップの初期画面

右上のボタンにタッチすると現在位置に移動します。(真ん中の青い点)

現在位置を表示

現在位置を表示

次は最初に現在位置を取得して表示できるようにしてみます。