365連休

にわかのandroidとかの開発メモ。

【解決?】Android Studio Arctic Fox WorkerでsetForegroundAsync()した通知が消えない

AndroidXのWorkerでsetForegroundAsync()した通知が消えない

【解決】Android Studio Arctic Fox API 'BaseVariant.getApplicationIdTextResource' is obsolete and has been replaced with 'VariantProperties.applicationId'.

ビルド時に API 'BaseVariant.getApplicationIdTextResource' is obsolete and has been replaced with 'VariantProperties.applicationId'. It will be removed in version 7.0 of the Android Gradle plugin. For more information, see TBD. To determine…

【解決】 Android Studio Arctic Fox 特定の端末でストアからインストールした時のみ、必ずクラッシュし起動できない。

特定の端末でストアからインストールした時のみ、必ずjava.lang.VerifyErrorが発生する。

Android Studio 4.2 Get Key failed: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.

Generate Signed Bundle / APKでビルドする際に Get Key failed: Given final block not properly padded. Such issues can arise if a bad key is used during decryption. というエラーが出て失敗する場合がある。

Android Studio 4.2 PopupWindowからActionModeを起動できない。ActionMode does not work in PopupWindow.

ActionMode使用するRecyclerViewをPopupWindow内で使おうとしたら、どうやってもActionModeが起動しなかった。 うんともすんとも言わない。 デバッグ実行でトレースしてみたが、startActionModeで起動した時に渡したコールバックがどうしても呼ばれない。 An…

FlexBoxのリポジトリがJCenterからGoogle Mavenへ

JCenterの廃止により、早期移行を個人的に熱望していたFlexBoxライブラリですが、ついにGoogle Mavenリポジトリへ移行されました。 github.com github.com Gladle書き方 2.0.1以前 jcenter() implementation 'com.google.android:flexbox:2.0.1' 移行後 goog…

日々煩雑になっていくAndroidのストレージアクセスについての考察

JavaのFileクラスによるフルアクセス ->SDアクセス煩雑化 ->Fileインテント禁止 ->MediaStoreを介さないストレージアクセスの煩雑化(ふぁっ!?) ->対象範囲別ストレージ(ふぁっ!?ふぁっ!?) ->MANAGE_EXTERNAL_STORAGE(アッー!) ->MANAGE_EXTERNAL_STORAGE…

Android Studio 4.2 BUILD FAILED compiler message file broken: key=compiler.misc.msg.bug arguments=11.0.8, {1}, {2}, {3}, {4}, {5}, {6}, {7} java.lang.NullPointerException

なんか急にBuildが通らなくなった。 compiler message file broken: key=compiler.misc.msg.bug arguments=11.0.8, {1}, {2}, {3}, {4}, {5}, {6}, {7} java.lang.NullPointerException at jdk.compiler/com.sun.tools.javac.code.Symbol$ClassSymbol.isSubC…

Android Studio 4.2 @NonNullまたは@Nullableをオーバーライドすると@org.jetbrains.annotations.*が追加される件

Android Studio 4.2にアップデートしてから、 @NonNull、@Nullableアノテーションのついたメソッドのオーバーライドやインターフェス実装時に、 @org.jetbrains.annotations.NonNullと@org.jetbrains.annotations.Nullableが追加されておかしなことになった…

Android Studio 4.1 と Google Cloud Platformで無料クライアント・サーバアプリを構築してみる

Google Cloud PlatformはAndroidアプリと連携する無料サーバになり得るのか実験してみた。Android Studioだけで開発する縛りプレイ。

Android Studio 4.1 Pleiades 日本語化 Pluginを無効にする

JetBrains公式の日本語化プラグインを導入するため、手動インストールしたPleiades Pluginを無効にする方法。 ①カスタムVMオプションを開く ②-Xverifiと-javaagentの2行を#でコメントアウトする 以上! 関連記事 neet-rookie.hatenablog.com

【GCP】無料でAndroidアプリ用サーバを立てるための考察【無料】

Androidアプリと連携する無料サーバを立てるための検討

Android Studio 4.1 Vertical SeekBar 縦シークバーの実装サンプル

レイアウトXMLでrotateとかをいじって実装していたが、コンテナの相対サイズで配置することが困難なため、AppCompatSeekBarを継承してVerticalSeekBarを実装した。 前提 minSdkVersion 21 implementation 'androidx.appcompat:appcompat:1.2.0' ソースコード…

【AdSense】ファンディングチョイスの導入とテスト【GDPR & CCPA】

このページでファンディングチョイスのメッセージをテストしてみるリンク AdSense x FundingChoiceのテスト方法 ファンディングチョイスでサイトのメッセージを作成する。 fundingchoices.google.com ブログなど自身のページへScriptタグを埋め込む。[ファン…

【解決】Androidアプリをストアからインストールすると、Navigationのタイミングで、必ずjava.lang.RuntimeException Unknown animation name: xが発生し異常終了する。

前提条件 App Bundle使用 minifyEnabled true shrinkResources true compileSdkVersion 29 minSdkVersion 16 targetSdkVersion 29 multiDexEnabled true androidx.navigation:navigation-fragment:2.3.2 androidx.navigation:navigation-ui:2.3.2 FragmentCo…

Consent SDK -> UMP SDK ( User Messaging Platform SDK)

Googleの広告配信時のGDPR系の同意情報の取得に使用する関連サービスとして、Consent SDKが提供されているが、これは非推奨となる模様。 Googleの広告各種ヘルプではファンディングチョイス(Funding Choices)とUMP SDK( User Messaging Platform SDK )を使用…

Android Studio 4.1 難読化をやめる。ProGuard使います。

App Bundleでリリースしたものの、Navigationのタイミングで即死するトラブルが発生。 Play Consoleのクラッシュログは以下の通り。 java.lang.RuntimeException: at android.view.animation.AnimationUtils.createAnimationFromXml (AnimationUtils.java:16…

【解決法】Use the Lifecycle Java 8 API provided by the lifecycle-common-java8 library instead of Lifecycle annotations for faster incremental build.

AndroidXのLifeCycleライブラリのリリースノートによると、 2.2.0以降でlifecycle-extensionsのAPIがサポートが終了になったため、 必要とする特定のLifeCycleアーティファクトの依存関係を追加することが推奨されています。 ★lifecycle-extensions の API …

はてなブログでもAdSense登録できました。

0円でできる、はてなブログを使用した、AdSense登録の成功例。

Android Studio 4.1 定義済みSpanを調査してみた

TextViewのsetTextにStringではなくSpannableを設定すると、細かい書式設定ができて便利。 だが、定義済みのSpanにどんなものがあるのか、網羅的リファレンスの日本語訳がないため、android.text.style.*のパッケージサマリを意訳してみた。

Javaでfinal宣言されたミュータブルオブジェクトをメンバに持つクラスはcloneできない

以下、私見です。 ミュータブルはCollectionなどの事、イミュータブルはStringなどの事 Javaのcloneはオブジェクト構造のコピーが作られる。 構造体のコピーみたいな感じ。 Javaにおいてプリミティブ値は参照を持たないから値がコピーされ、 オブジェクトは…

Android Roomが返す"LiveDataの挙動"についてメモ

Android Room Databaseの@Daoで返すLiveDataは、Observeしないとそもそもクエリを発行しない。 確認環境 implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' implementation 'androidx.room:room-runtime:2.2.5' ある画面でRoomからLiveData形…

JavaのDateクラスとタイムゾーン

今更Dateクラス! Dateクラスにはローカルのタイムゾーンが適用される!!! でもgetTime()はGMT(≒UTC) import java.util.Date; public class HelloWorld{ public static void main(String []args){ //シリアル値から日付を取り出して再度Dateオブジェクト生…

Android Studio 3.6 Navigationで複数画面のPreferenceFragmentを使用する方法

設定.xmlのPreferenceタグにFragmentを指定すると別なPreferenceFragmentを起動できるが、Navigationを使用している場合うまく動作しない。 ちゃんと確認していないが、Navigationと複数画面のPreferenceの食べ合わせは非推奨らしい。 そこで、Navigationの…

Android Studio 3.6 ディレクトリを表すUriオブジェクトがあるか?

ディレクトリを表すUriオブジェクトはあります。

Android Studio 3.6 SavedStateViewModelFactoryがリフレクションするViewModelのコンストラクタ

前書き 筆者がぽんこつなため、この記事は一部不正確な可能性があります。ご了承ください。 前提条件 //build.gradle implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' SavedStateViewModelFactoryって? 画面回転時とかの再生成に対応したV…

Android Studio 3.6 MediaStoreのBaseColumn._IDが主キーじゃないという話

android.provider.MediaStoreのImageColumnsもFileColumnsもandroid.provider.BaseColumnsを継承しているが、 BaseColumns._IDは主キーじゃなかったという話。 ハイラルキー BaseColumns MediaColumns ImageColumns AudioColumns VideoColumns DownloadColum…

【Self Stack Overflow】Javaで多重継承を行う方法

自問 Javaでクラスの多重継承を行う方法を教えてください。 ベストアンサー Javaで多重継承はサポートされない。 public static class H { String h = "hour"; void echo(){ System.out.println(h); } } public static class O { String o = "o'clock"; void…

【Self Stack Overflow】Javaで複数の戻り値(タプル)を持つメソッドを定義する方法

自問 Javaで複数の戻り値(タプル構造)を持つメソッドを定義する方法を教えてください。 ベストアンサー Javaのメソッドは1つの「プリミティブデータ型」または「クラス」しか返すことができない。 そこで、複数の値を持つクラスを返す方法を考える。 Java1.…

【Self Stack Overflow】Javaで16進数文字列を正しく数値及び数値型へ変換する方法

自問 Javaで16進数文字列を正しい数値及び数値型へ変換する方法を教えてください。 以下のコードはエラーになります。 Integer.parseInt("ffffffff", 16); //throws NumberFormatException Short.parseShort("ffff", 16); //throws NumberFormatException By…