Android
デフォルトで横になる原因 AndroidManifestに定義されているから。
facebook SDKを含むAndroidアプリの依存を解決してみました。 省略 (*) 既に別の場所で出力されているので子の依存を省略 推移的依存解決 -> 別のライブラリ等の定義で新しい物が使用されていたのでそちらを使用する 出力された依存グラフ +--- com.facebook…
Androidは複数アカウントを持てたり、仕事用プロファイルがあったりします。Android Studio(adb install)ではデフォルトで全てのユーザーにアプリが入っていしまうので、コマンドで指定してインストールします。 ユーザー取得 adb shell dumpsys user | grep…
Java/Kotlinにて、テストとかで使うのではなく、ちょっとした確認でMockを使用したかっただけでした。それくらいでMockライブラリを入れるのが面倒だったので、ライブラリ無しでMockできないかを検討してみました。 1. Mockライブラリを調べる Mockライブラ…
前にこういう記事を書いてデバッグを加速させました。 【Android】Activityを開いたらLogcatにそのActivityへのリンクを表示する - アプリ開発備忘録 よく考えるとFragmentでもできるんじゃないか?と思い調べてみたらできました。 使用する機能 FragmentMan…
クラッシュログはコードジャンプでクラッシュ箇所に飛べて便利ですよね。その仕組みを自由に使用できないかなと色々調べた結果、正規表現でやっているらしく、特定の文字列を出力するだけでコードジャンプのリンクを生成できました。 文字列 リンクを表示す…
構築ガイド https://jitpack.io/docs/BUILDING/ main以外に好きな名前でモジュールを作成。 そのモジュールのbuild.gradleに以下を追加 apply plugin: 'maven' group = 'com.github.YourUsername' おしまい。
結論 module { viewModel { (savedState : SavedStateHandle) -> StateViewModel(savedState) } } class StateViewModel(savedState : SavedStateHandle) : ViewModel { } val viewModel by viewModel<StateViewModel> { parametersOf(Bundle) } parametersOfでBundleを渡す</stateviewmodel>…
ViewBindingUtilを公開しました。 DataBindingのようなDataBindingUtilが無いので作りました。 DataBindingUtil DataBindingUtil | Android Developers ViewBindingUtil DataBindingと違ってViewBindingはViewDataBindingとかを継承していないのでリフレクシ…
ViewBindingがもうすぐStableになるので使用してみました。ActivityやFragmentの最新版との組み合わせを書いていきます。 公式ドキュメントはこちらになります。 https://developer.android.com/topic/libraries/view-binding 使用準備 build.gradleにViewBi…
Android Q時点のコードです。 Bitmap->Uri class ImageRepository( private val application: Application ) { private val IMAGE_PATH = "image" private val imagePath = application.getFileStreamPath(IMAGE_PATH).apply { // シェアのために一時的に保…
I/Oセッション youtu.be Coroutineのサポート 関数にsuspendと付ける事でCancelableなコードが生成されるようになります。 全文検索のサポート SQLiteの拡張機能である、全文検索を利用できるようになります。 EntityにFTS4拡張と使用することを書きます。 …
Viewへのアクセス方法が進化していきます。 I/Oセッション youtu.be DataBinding Annotation Processingの速度が20%向上 Incremental Annotation Processing android.databinding.incremental=true で増分コンパイルが有効化される。 XMLの即時反映 XMLに追…
I/Oセッション youtu.be ViewModel このようなカウントするLiveDataがあります。 class MainViewModel : ViewModel() { val counter = MutableLiveData(0) } 押したら1増やします。 ViewModelを使用すれば画面回転を乗り越えられます。 当たり前ですが、プロ…
DerInputStream.getLength(): lengthTag=109, too big. にてビルドはできるものの署名ができず、インストールできない。 AndroidXへ移行した際に発生した。ただ、環境によっては問題が出なかったので関係あるか不明。 gradle-4.10.1→gradle-4.10.2にすること…
以下が消えて - READ_EXTERNAL_STORAGE - WRITE_EXTERNAL_STORAGE 以下が出てきたが - READ_MEDIA_IMAGES - READ_MEDIA_AUDIO - READ_MEDIA_VIDEO 「READ_EXTERNAL_STORAGE」、「WRITE_EXTERNAL_STORAGE」が復活した。 ただ、Scoped Storageが宛先になるよう…
VERSION_CODES AndroidQ Preview2のコード public static class VERSION_CODES { public static final int BASE = 1; public static final int BASE_1_1 = 2; public static final int CUPCAKE = 3; public static final int CUR_DEVELOPMENT = 10000; publi…
モジュールが違っていてもリソースIDは被ってはいけない。 モジュールが違えばレイアウトID(ファイル名)を被らせる事はできてしまう。 以下をGradleに記述する事で警告を出す事ができる。 android { resourcePrefix 'modulename_' } たまたまHyperionのバグ…
CustomViewを作ったことがある、更にCustomViewの中でonDrawなどを書いた事があればわかるのですが、その内容はレイアウトエディタに反映されます。addViewしても反映されます。つまりAndroidStudioがCustomView内の処理を走らせてレイアウトや装飾を確認し…
問題 以下の動画のように末尾や先頭にスクロールした後に一回クリックイベントが効かなくなります。しかし、暫く待てばクリックすることができます。 これはGooglePayアプリでも発生しています。 再現環境 自分の場合はBottomSheetにFragmentとしてRecyclerV…
VectorDrawable、AnimatedVectorDrawableってなんなの。SVGから変換できるけどそれとは何が違うのって思いました。 SVGとVectorDrawable なので何が違うか確認しましょう。 適当に大きさの違う円形と楕円形のSVGを作ったものとそれをAnimatedVectorDrawable…
アノテーションとかがサポートライブラリの方を参照しようとして参照できなくてエラーが出ます。 トップレベルのgradle.propertiesは以下のようになっています。 android.enableJetifier=true android.useAndroidX=true 書き換えやってくれないの?って思い…
OS入れ直してAndroid Studioを再インストールした時にハマったのでメモ。 発生したこと Android SDKがインストールできない 原因 JetBrains製品はUser/{UserName}/.{AppName}にデータを保存している。 Android Studioを再インストールして初回起動時にこれを…
ある日このようなエラーが出ました。 Failed to resolve: play-services-stats Open File Failed to resolve: play-services-base Open File Failed to resolve: play-services-tasks Open File Failed to resolve: play-services-basement Open File build.…
削除のお知らせ 朝起きるとアプリが削除されていました。 子供向け設定されていないアプリが削除されています。しかし全て削除されているわけでありませんでした。基準は謎。 わかりやすくマークされています。 これですね。 いいえにしておけばいいと思いま…
まさかAndroid Profilerのせいだとは思いもしなかった。 Android Profilerのタブに触れたが最後、強制終了するapkが生成されるようになります。 環境 Android Studio 3.1.2 (3.1.1でも報告がある) Android 8.0.0 compileSdkVersion 27 buildToolsVersion '27…
画面オーバーレイしようと思ったらシステムUIが落ちる。 今までオーバーレイは普通にやってたのに何故…と思ったらアダプティブアイコンのせいだったという話です。 はじまり 画面オーバーレイをしようと思ったらシステムUIが止まった。 Logcatでフィルターを…
毎度おなじみAndroid Studioのアップデート。毎回苦労させられる。 まずこれ DataBindingUtil.bind()がnullableになった。 DataBindingUtil.bind()!!としてしまった。 本題 DataBinding関連で大文字名前空間を使うと死にます。因みに先頭大文字のみっぽい。K…
メモ private val EXTRA_CONSUMER_KEY = "ck" private val EXTRA_CONSUMER_SECRET = "cs" private val TWITTER_PACKAGE_NAME = "com.twitter.android" private val SSO_CLASS_NAME = TWITTER_PACKAGE_NAME + ".SingleSignOnActivity" val authConfig = Twitt…
API Levelとオーバーレイ Android Oreo(API Level 26)からWindowManager周りが変わってオーバーレイをするには色んなレイヤーがありましたが「TYPE_APPLICATION_OVERLAY」にまとめられたり「startForegroundService」を呼んで「startForeground」を使わない…