Android Stadio3.4.1でビルドエラー LocationAwareException, Multip…

AndroidStadioを3.4.1にアップグレードして、既存のプロジェクトをビルドしたところエラーが発生... Clean BuildやRebuild Projectしてもダメ... バージョン情報 エラー情報 org.gradle.internal.exceptions.LocationAwareException: Execution failed for task ':app:compileDebugJavaWithJavac'. at org.gradle.initialization.exception.DefaultExceptionAnalyser.transform(DefaultExceptionAnalyser.java:99) at org.gradle.initialization.exception.DefaultExceptionAnalyser.collectFailures(DefaultExceptionAnalyser.java:65) at org.gradle.initialization.exception.MultipleBuildFailuresExceptionAnalyser.transform(MultipleBuildFailuresExceptionAnalyser.java:39) at org.gradle.initialization.exception.StackTraceSanitiz…

続きを読む

AdMob広告が表示されない(されなくなった)

先日新規にアプリを開発していて、首記の事象が発生し、とても困ったので書き記しておきます。なお、一応解決はしましたが原因は分かっていません。。 事象と経緯 アプリにAdMob広告を入れてリリースビルドしたとき、必ず一度は本番用の unit_id で実際の広告を確認してからリリースするようにしているのですが(心配性なので)、待てども待てども広告が表示されません。 PCにつないでLogcatを確認したところ、以下のようなログが出力されていました。 I/Ads: Use AdRequest.Builder.addTestDevice("XX") to get test ads on this device. W/Ads: App does not have the required permissions to get location I/Ads: SDK version: afma-sdk-a-v15090021.12211000.1 I/Ads: Ad failed to load : 3 どうやら広告のloadに失敗しているようです。が、Ad failed to load : 3 が何を意味しているのか、直前に出ているAdsのログが何か関係しているのか、小一時間調べましたが全く分かりませんでした。。 ここであることに気づく これまでにリリースしているアプリもいくつか広告が表示されなくなっているものがあることに気づきました。 「もしやAd…

続きを読む

【Androidアプリ】JSONViewer - ソースコード -

昨年リリースした JSONViewer というアプリのソースコードを GitHub にアップロードしました。 Google Play https://play.google.com/store/apps/details?id=com.swapps.jsonviewer ソースコード https://github.com/s-watanabe-apps/json-viewer.git アプリについて 内部ストレージ、またはSDカード上のJSONファイルを検索して、表示、編集することができます。(内部ストレージの場合は編集権限が必要です) スクリーンショット このアプリケーションのソースコードで確認できること カスタムリストビュー ストレージ参照権限の取得 JSONの整形 AdMob全面広告 ほとんど思い付きで書いてるのでとても綺麗とは言えませんが、リクエストがありましたため公開しました。また、この他にも気になるソースコードのアプリがありましたらどんどん公開しますのでご連絡ください。

続きを読む

Realmの基礎 - 検索・追加・更新・削除 -

Androidアプリケーションで、Realmを使ったデータの取り扱いについてまとめました。 Realmとは モバイルデバイス向けのデータベースです。Realmが登場するまではSQLiteなどが一般的でした。 もっと詳しくという人は、こちらの記事が分かりやすいと思います。 https://mynavi-agent.jp/it/geekroid/2015/03/realm-realm-tech-talk-.html app/build.gradle dependenciesに以下の2行を追加して同期します。 implementation 'io.realm:realm-android:+' annotationProcessor 'io.realm:realm-android:+' データ型の定義について データ型はRealmObjectを継承したクラスによって定義します。 これはデータベースで言うところのテーブルに当たります。 ここではIDと名前の2項目を持った単純なテーブルを作ります。 import io.realm.RealmObject; public class Item extends RealmObject{ private int id; private String name; public void setId(int id) { this.id = id; …

続きを読む

LocationListenerで位置情報を取得する

AndroidでLocationListenerを使った位置情報の取得についてまとめます。 AndroidManifestへ権限を追加 <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_GPS" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> ACCESS_COARSE_LOCATIONはネットワーク経由で位置情報を取得するのに必要な権限です。 それに合わせてINTERNETの権限も必要になります。 ACCESS_GPSとACCESS_FINE_LOCATIONは、GPSを使用した位置情報を取得するのに必要な権限です。 位置情報の取得方法 方法としては、LocationListener(インターフェース)を実装したクラスで、LocationManagerにより取得します。 reque…

続きを読む

権限の取得方法

AndroidアプリケーションがOSの機能へアクセスする場合、利用者に権限を許可してもらう必要があります。 OSの機能とは以下のようなものです。 連絡先 位置情報 カメラ etc ・・・ ここでは連絡先を利用するアプリケーションを作ると想定して、どのように実装するのかをまとめます。 AndroidManifestへ権限を追加 <uses-permission android:name="android.permission.READ_CONTACTS" /> 権限を貰うための処理 public class MainActivity extends AppCompatActivity { /** * onCreate * @param savedInstanceState */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // このアプリケーションに連絡先にアクセスする権限が許可されているかチェック if (PermissionChecker.c…

続きを読む

もっと見る

スポンサーリンク