アプリ開発備忘録

PlayStationMobile、Android、UWPの開発備忘録

KotlinをGradleでビルド

gradleでビルドする時に以下のように書けというのが多いですが動かなかったので調べました。 既存コード jar { manifest { attributes 'Main-Class': 'net.matsuda.MainKt' } from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) …

IntelliJ内でJDKのインストールを完結する

プラグイン 「JB SDK Bintray Downloader」プラグインを使います。 使い方 Shift二回連打かCtrl + Shift + Aで「Get JB SDK」と検索して実行します。 バージョンを選択してダウンロード、インストールを実行します。 設定 Project Structureにて設定を行いま…

【Python】No module named keras.preprocessing.image

エディタ上では依存が解決できているが、実行時にエラーになる。 コードジャンプしていくと、内部でPILを読んでいるようなのでPILを入れる。 Anacondaを使っているので。 conda install -c anaconda pillow

PyTorchインストールでSafetyError: The package for cudatoolkit

問題 こんなエラー。cuda10.1入れてるのが良くないのかなとか思って直したりした。 pears to be corrupted. The path 'Library/bin/cublas64_100.dll' has an incorrect size. reported size: 67318784 bytes actual size: 37617664 bytes 解決 けどこれで解…

【Android】Room 2.1の更新点

I/Oセッション youtu.be Coroutineのサポート 関数にsuspendと付ける事でCancelableなコードが生成されるようになります。 全文検索のサポート SQLiteの拡張機能である、全文検索を利用できるようになります。 EntityにFTS4拡張と使用することを書きます。 …

Android Studio 3.5からのDataBindingの進化、3.6からのViewBinding

Viewへのアクセス方法が進化していきます。 I/Oセッション youtu.be DataBinding Annotation Processingの速度が20%向上 Incremental Annotation Processing android.databinding.incremental=true で増分コンパイルが有効化される。 XMLの即時反映 XMLに追…

【Android】SavedStateHandleでViewModelをプロセスキルを乗り越えるようにする

I/Oセッション youtu.be ViewModel このようなカウントするLiveDataがあります。 class MainViewModel : ViewModel() { val counter = MutableLiveData(0) } 押したら1増やします。 ViewModelを使用すれば画面回転を乗り越えられます。 当たり前ですが、プロ…

開発環境(書いている途中)

IDE VS Code とりあえず色々開ける。 IntelliJ Git 入力補完を行う 「Git補完をしらない」「git statusを1日100回は使う」そんなあなたに朗報【git-completionとgit-prompt】 - Qiita

【Android】DerInputStream.getLength(): lengthTag=109, too big.

DerInputStream.getLength(): lengthTag=109, too big. にてビルドはできるものの署名ができず、インストールできない。 AndroidXへ移行した際に発生した。ただ、環境によっては問題が出なかったので関係あるか不明。 gradle-4.10.1→gradle-4.10.2にすること…

【Android Q】Beta2→3 READ/WRITE_EXTERNAL_STORAGEの復活

以下が消えて - READ_EXTERNAL_STORAGE - WRITE_EXTERNAL_STORAGE 以下が出てきたが - READ_MEDIA_IMAGES - READ_MEDIA_AUDIO - READ_MEDIA_VIDEO 「READ_EXTERNAL_STORAGE」、「WRITE_EXTERNAL_STORAGE」が復活した。 ただ、Scoped Storageが宛先になるよう…

【Windows】PythonでTensorFlow物体検出メモ

最初はJavaをしようとしたけど無理だった。まずサンプルが無いしOpenCVとか使うにも不便。動的型付けとか無理だけど使うしか無い。 インストール Anacondaを使用 cudaとcudnnが新しいと動かないことがある。 使用したバージョン cuda version : 9.0.176 cudn…

【Android】PreviewのVERSION_CODESとSDK_INT

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…

Kotlin Contractsが必要な場面に遭遇した

Kotlin Contractsあまり理解していなかったのと、自分で書く必要があるとは思わなかったのでこんな所で使うんだなと思って書きました。 まずこのようなコードがあります。 時間を計測するKotlinのスタンダードライブラリの関数です。 public inline fun meas…

【Windows】BoostをビルドしてCMakeで使用する。

Boostのビルドと使用です。 今回は1.70.0をビルドしました。 CMakeのバージョンはCLionに入っている3.13.2を使用しました。 理解しているわけではなく、なんか動いた程度の記事です。 Boost C++ Libraries ビルド 「bootstrap.bat」を実行します。 「b2.exe…

【Windows】C++知識なしから始めるOpenCVのビルドから使用まで

※プロダクトとかではなくとりあえず動けばいい人用 やること cuda入りのOpenCVのビルド Javaでの使用(ついで) CLionでC++での使用 ダウンロード OpenCV GitHub - opencv/opencv: Open Source Computer Vision Library OpenCV's extra modules GitHub - openc…

【Android】リソースのプレフィックスをモジュールごとに強制する

モジュールが違っていてもリソースIDは被ってはいけない。 モジュールが違えばレイアウトID(ファイル名)を被らせる事はできてしまう。 以下をGradleに記述する事で警告を出す事ができる。 android { resourcePrefix 'modulename_' } たまたまHyperionのバグ…

【Android】CustomViewでPreviewが正常に生成されない場合に

CustomViewを作ったことがある、更にCustomViewの中でonDrawなどを書いた事があればわかるのですが、その内容はレイアウトエディタに反映されます。addViewしても反映されます。つまりAndroidStudioがCustomView内の処理を走らせてレイアウトや装飾を確認し…

RecyclerViewのスクロール後にクリックできなくなる問題

問題 以下の動画のように末尾や先頭にスクロールした後に一回クリックイベントが効かなくなります。しかし、暫く待てばクリックすることができます。 これはGooglePayアプリでも発生しています。 再現環境 自分の場合はBottomSheetにFragmentとしてRecyclerV…

【Android】VectorDrawable AnimatedVectorDrawableを理解する

VectorDrawable、AnimatedVectorDrawableってなんなの。SVGから変換できるけどそれとは何が違うのって思いました。 SVGとVectorDrawable なので何が違うか確認しましょう。 適当に大きさの違う円形と楕円形のSVGを作ったものとそれをAnimatedVectorDrawable…

AndroidXプロジェクトでExoPlayer flac extensionを使う

アノテーションとかがサポートライブラリの方を参照しようとして参照できなくてエラーが出ます。 トップレベルのgradle.propertiesは以下のようになっています。 android.enableJetifier=true android.useAndroidX=true 書き換えやってくれないの?って思い…

【Kotlin】関数型でスマートキャストが使えない

バージョン Kotlin 1.3.0 以下のコードでblock()はダメだけどblock.invoke()はスマートキャストされる。 class Hoge(val block: (() -> Unit)?) { fun hoge() { if (block != null) { block() // NG block.invoke() // OK } } } とりあえず探してみたらあっ…

個人データを保持したままWindowsを再インストールした場合のAndroid Studioインストール

OS入れ直してAndroid Studioを再インストールした時にハマったのでメモ。 発生したこと Android SDKがインストールできない 原因 JetBrains製品はUser/{UserName}/.{AppName}にデータを保存している。 Android Studioを再インストールして初回起動時にこれを…

Gradle repositoriesでjcenterよりも先にgoogleを書け

ある日このようなエラーが出ました。 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.…

gradle dependencies、compileからimplementation、apiへ。ライブラリを作るなら気をつけないといけない違い。

はじめに Androidのライブラリを作成するには通常通りappモジュールを作成し、そこにモジュールを追加して書いていきます。appでは実際にはサンプルとか書く感じになると思います。(ですよね?) 問題発生 今まではcompileを使っていましたが今後はimplementat…

GooglePlayアプリ削除祭りが開催。暫くアプリを放置している人は確認しよう。

削除のお知らせ 朝起きるとアプリが削除されていました。 子供向け設定されていないアプリが削除されています。しかし全て削除されているわけでありませんでした。基準は謎。 わかりやすくマークされています。 これですね。 いいえにしておけばいいと思いま…

Android Profiler, Fragment, EditText, 画面遷移で強制終了

まさかAndroid Profilerのせいだとは思いもしなかった。 Android Profilerのタブに触れたが最後、強制終了するapkが生成されるようになります。 環境 Android Studio 3.1.2 (3.1.1でも報告がある) Android 8.0.0 compileSdkVersion 27 buildToolsVersion '27…

画面のオーバーレイでシステムUIが落ちると思ったらアダプティブアイコンのせいだった

画面オーバーレイしようと思ったらシステムUIが落ちる。 今までオーバーレイは普通にやってたのに何故…と思ったらアダプティブアイコンのせいだったという話です。 はじまり 画面オーバーレイをしようと思ったらシステムUIが止まった。 Logcatでフィルターを…

Android Studio 3.1 + Kotlin + DataBinding + 大文字名前空間 → 死

毎度おなじみAndroid Studioのアップデート。毎回苦労させられる。 まずこれ DataBindingUtil.bind()がnullableになった。 DataBindingUtil.bind()!!としてしまった。 本題 DataBinding関連で大文字名前空間を使うと死にます。因みに先頭大文字のみっぽい。K…

IntelliJ設定集

備忘録 オーバースクロール Editor→General Show virtual space at file bottom ミニマップ プラグインの「CodeGlance」を入れる。 色 パラメーターヒントの色 Language defaults -> Parameter Hint フォーマット Auto import 常時インポートを整理する Edit…

TwitterKit3-Androidで認証

メモ 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…