Androidはワンツーパンチ 三歩進んで二歩下がる

プログラミングやどうでもいい話

Android

Androidアプリ「投資名言」リリースしました!

こんにちは。 2019年11月、個人開発のAndroidアプリ「投資名言」をリリースしました。 投資に関する名言ですが、人生に応用できるようなよい言葉がたくさん入っているアプリです。 ネットワークアクセスもほとんど無い電池に優しいアプリですので是非お試し…

【AndroidX】Jetpack のNavigation で戻るボタンの処理をカスタマイズする(Backキーのイベントを拾う, OnBackPressedDispatcher, OnBackPressedCallback, ToolBarの戻るボタン)

公式サイト 実行した環境 参考サイト様 何がやりたいのか 注意事項 必要なライブラリ 依存ライブラリのバージョンの確認 戻るボタンの処理を記述する OnBackPressedDispatcherにコールバックを追加する 説明(ほぼ公式サイトより) コールバックの有効と無効を…

【Android開発】xmlファイルでアプリ全体にオリジナルのフォントを適用する(Android4.1 API level 16以降)

公式サイト この記事の内容を試したサンプルの環境 フォントファイルをリソースとして認識させる フォルダを追加する フォントファイルを追加する フォントリソースにアクセスする アプリ全体にフォントを適用する 個別のViewにフォントを適用する アプリ全…

"Type mismatch: inferred type is MainActivity but LifecycleOwner was expected"コンパイルエラー対応(AndroidX, support libraly, gradleのtranstive推移的依存関係の解決)

実行した環境 参考サイト様 発生した現象 書いたコード(Kotlin) エラーメッセージ エラー発生時のbuild.gradle(Project) エラー発生時のbuild.gradle(Module:app) 原因 原因:LifecycleOwnerを実装していないクラスを継承していたため(推移的依存関係が絡む…

Androidアプリ「インコ発信確認」終了です。優しいユーザー様ありがとうございました。

Androidアプリ「インコ発信確認」は2015年よりGoogle Playで公開しておりましたが、 2019年3月公開終了となりました。 ご愛顧いただいていたユーザー様にはご迷惑をお詫びするとともに、 今までのご利用に感謝いたします。 現在Google のポリシーが厳しくな…

Android Studioで作成したAPKファイルをGoogle Play Consoleにリリースしようとすると「アップロードできませんでした テスト専用の APK はアップロードできません。」というエラーになる状況について

前提 Android Studio 3.0.1(2018/01/22現在)対象のアプリは本番用アプリへの署名はbuild.gradleに設定済みで variantを切り替えた後に、Runボタンか Android Studio メニュー > Build > Build APK(s)を 選択するとapkがビルド出来る状態です。 状況 Androi…

Gradleのバージョンを3以上に上げた時に「Cannot set the value of read-only property 'outputFile' for ApkVariantOutputImpl_Decorated」というエラーが発生した時の対処方法

Android StudioでGradleプラグインを2系から3.0.1にアップデートしたところ、 次のようなエラーが発生しました。 Error:(160, 0) Cannot set the value of read-only property 'outputFile' for ApkVariantOutputImpl_Decorated{apkData=Main{type=MAIN, ful…

Nexus5Xのバッテリーを交換した。互換バッテリーは噂通りすぐ電池がなくなる。

Nexus5xをいくら充電をしても充電切れの赤いランプが付いてしまうようになってし まいました。 ここ最近満充電してもすぐに電池がなくなってしまうのでバッテリーが寿命のようです。 ついに起動も満足に行えなくなってしまいました。iPhone7をメインで使って…

Androidアプリ「ポケット糖質量」をリリースいたしました

こんにちは。さくらです。 Androidアプリ「ポケット糖質量」をリリースいたしました。 play.google.comこのアプリが何を出来るかといいますと、1100種類以上の食品データから糖質量などの栄養素をリスト表示・検索することが出来ます。 以前このブログでRail…

伸び縮みするCardViewを作成する(cachapa/ExpandableLayout + RecyclerView + CardViewのサンプル)

RecyclerViewを使ってリスト表示しているレイアウトがあり、その中でタップするとViewが伸縮するCardViewを表示するレイアウトのサンプルを作ったのでメモです。 ExpandableListViewと似たような表示方法です。 こちらに全体のソースがあります。短いコード…

AndroidのTextUtilsのisEmptyメソッドとJavaのStringのisEmptyメソッドはわりと違う

年がら年中使っているAndroidのTextUtilsのisEmptyメソッドとJavaのStringのisEmptyメソッドですが、同じ名前で何が違うのか調べたメモです。 TextUtilsクラスのメソッドは全てstaticで定義されていて、JavaのisEmptyメソッドはインスタンス変数から使用する…

緯度・経度から郵便番号を取得する

Geocoderクラスを使って緯度と経度から郵便番号を取得する方法です。 題名は郵便番号を取得するとなっていますが、住所も取得できます。 自分が郵便番号というキーワードで検索していたため自分用メモです。 developer.android.com Gercoderを使用して住所(…

LocationManagerはもう古い!Google Service の Location APIを使って現在位置を取得する

しばらく使っていない分野のAPIっていつの間にか非推奨になってたりしますよね。 変化の激しいAndroid開発で全ての変化に付いていくのは至難の業だと思います。 恥ずかしいんですが、この度久しぶりに位置情報の取得方法を調べましたら結構前に時代が変わっ…

DataBindingを使おうとしてバインディングクラスがcannot resolve などとエラーになった時に確認すること

DataBindingを使う時に、プロジェクト生成時に作成したactivity_main.xmlとMainActivity.javaをバインディングしようとしただけで 「Cannot resolve symbol 'ActivityMainBinding'」とか言われたはことないでしょうか。 私は2回あるので、初歩的ではありま…

Android4.4のWebViewでopenFileChooserが動かない件の対処方法2つ JavascriptInterfaceを使う/Crosswalkを使う

WebViewで表示しているページ上で、ユーザーがボタンを押したらローカルのイメージ一覧を表示するような処理があるとします。 そして、ボタンを押されたイベントをネイティブで受け取る→暗黙的Intentでギャラリーを呼び出しファイルを選択させるということを…

アプリをアンインストールすると端末が再起動してしまう現象にキャッシュパーテーションの消去が効くかもしれない

メモです。私の端末: Nexus5x 現象: アプリをアンインストールすると端末が再起動してしまうことがある。 同じアプリをアンインストール→インストールするのを繰り返したが違うアプリだとどうなるかは不明 現象が発生するタイミング: 不定期 端末が再起動し…

Nexus5xがFirmware Updateの画面を表示したまま0%のまま動かない

よくワカランチンメモ手持ちのNexus5Xを電源オフ ↓ power + volume up button 同時長押し ↓ Firmware Updateの画面が表示されたままになる(プログレスバーの数字が0%のまま) ↓ しばらく放置するもなんら状況が変わらない ↓ 電源ボタン長押し ↓ 普通に再起…

Android 6.0 Marshmallow(API level 23) で導入されたDozeでダイアログから電池の最適化の無視を許可したのに設定画面の「最適化してないアプリ」一覧には反映されない問題

こんにちは。最近体調が不安定です。Android 6.0 Marshmallow(API level 23) で導入されたDozeという機能があります。 Optimizing for Doze and App Standby | Android Developers電池を長持ちさせるために、一定時間以上ユーザーがスマフォにアクセスしない…

ExoPlayerで動画の音声をミュートする方法

ExoPlayerと言えばGoogleがMediaPlayerの代替となるものとして発表したオープンソースのライブラリです。 ExoPlayer | Android Developers ExoPlayer - Home公式のDemoを使うこと前提ですが、動画の音声をミュート(ボリュームを調整)する方法のメモです。s…

コンパイル時にpackageの場所がおかしいというメッセージが出た

メモです。エラーではないのですが、このようなメッセージがbuildのログに表示されました。 Information:Gradle tasks [:app:assembleStaging] Observed package id 'add-ons;addon-google_apis-google-19' in inconsistent location '/Users/sakura/Library…

AndroidアプリでFacebookのパーミッションを取得した話

このポストではFacebook API ver2.0 / Graph API v2.4の時点の情報を書いています。 FacebookのGraph APIを利用したAndroidアプリを作りました。 そのアプリはデモアプリみたいなもので、画面のデザインや素材作成も含めて製作期間は一週間ぐらいの小さなも…

FacebookのAndroidアプリを作る。開発者登録〜FacebookアプリID取得

developers.facebook.com AndroidでFacebook SDKを使ったアプリを作成する場合、Facebookのデベロッパーサイトでアプリを登録する必要があります。 その手順をまとめたいと思います。(このエントリー作成時点のFacebook APIバージョンは2.0、Graph APIバー…

AndroidでListPreferenceを使う時にsummaryに選択された項目を自動で表示する方法

AndroidでPreferenceScreenを定義してListPreferenceを使う時にsummaryに選択された項目を自動で表示する方法を調べていて、これ面白いなーと思ったのでメモしておきます。下記のようにListPreferenceのandroid:summary="%s"と指定しておきます。 そうします…

速いと噂のAndroid ORMライブラリDBFlowを使ってみた

Raizlabs社というところのDBFlowというORマッパライブラリを使ってみました。 とても新しいライブラリで、2014/9/7がfirst commitとなっています。github.comこちらのサイト様で紹介されています。 qiita.comRaizlabs社のスピードテストでは非常に速いという…

gradleで build variantsを使用して複数のApplication IDを作ったがGCMのレシーバーなどでパッケージ名がバッティングしてしまう時の対処方法

私はgradleを使いこなしていると言うには程遠いレベルですが、Eclipseの時代より楽になった!もう戻れない! と思うものはbuild variantsなる機能を用いるとリリース用、デバッグ用でパッケージ名やapk名やリソースを簡単に変えられることです。Configuring …

Facebookでログイン済みかどうかをチェックし、Facebook SDKのログイン画面を表示する

Facebook SDK v4で動作確認しています。おなじみのログイン画面 Facebookでログイン済みかどうかをチェック (他にいい方法があるかもしれませんが) private boolean checkLogin() { AccessToken accessToken = AccessToken.getCurrentAccessToken(); retur…

DrawerLayout内でマルチタッチ処理を行うとArrayIndexOutOfBoundsExceptionが発生する

「自分用メモ」です。こればっか言ってますなバッドノウハウを自分用メモですと言ってる感が。先人の知恵以外何も無いし 恥ずかしい気分モードですが、気を取り直して書きます。support-v4:22.2.1のお話です。 PhotoViewという、画像をピンチイン・ピンチア…

PhotoViewライブラリを使おうとしたらCould not find com.github.chrisbanes.photoview:library:1.2.4.とgradleに怒られた

偉大なるPhotoViewを我がプロジェクトに取り込むにあたり、エラーに遭遇しました。 その時のメモです。chrisbanes/PhotoViewgithub.comgithubの説明のとおりにbuild.gradleに記述しました。 repositories { mavenCentral() } dependencies { compile 'com.gi…

Material Designを実装するのに役に立ったリンクを紹介します

インコ発信確認をアップデートしました。 インコ発信確認 - Google Play の Android アプリリリースしてから放置してしまっていたのですが、ユーザー様からLolipopスタイルにしてほしいとご意見をいただきマテリアルデザイン風にしてみました。 作成にあたっ…

AndroidのプロジェクトにFacebook SDKをimportしてうまく行かなかった時のメモ

事情があってまだEclipseでも新規にプロジェクトを作ることがあります。 FacebookのSDKを使う必要があり、つまづいた時の自分用メモです。Facebook SDKは2015/07/23現在v 3.23.1です。 Facebook SDK for Android公式サイトでもEclipseで使用する方法は書いて…