アプリ開発備忘録

PlayStationMobile、Android、UWPの開発備忘録

【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…

Android Oreで「startForegroundService」を使わないでオーバーレイした時に起きる通知画面との問題

API Levelとオーバーレイ Android Oreo(API Level 26)からWindowManager周りが変わってオーバーレイをするには色んなレイヤーがありましたが「TYPE_APPLICATION_OVERLAY」にまとめられたり「startForegroundService」を呼んで「startForeground」を使わない…

AccessibilityService開発中にAccessibilityServiceが起動しなくなる

最初は問題なかったが暫くすると何故か起動しなくなる。今のところAPI Level 26で再現。 取り敢えず一通り環境 Android Studio 3.0.1 com.android.tools.build:gradle:3.0.1 compileSdkVersion 27 buildToolsVersion "27.0.3" minSdkVersion 17 targetSdkVer…

ToolBarとかのサポートライブラリでDataBinding

Android data bindingで定義済みの属性リスト - Qiita 「android:onMenuItemClick」とか定義されてるはずなのに使えんなと思ってまさかと思い確認。 原因 extensions/baseAdapters/src/main/java/android/databinding/adapters/ToolbarBindingAdapter.java -…

Android Kotlin DataBindingのTwo-wayでisHogeというフィールド名が使えない

エラー文 Error:java.lang.IllegalStateException: failed to analyze: android.databinding.tool.util.LoggedErrorException: Found data binding errors. ****/ data binding error ****msg:The expression [...] cannot be inverted: Two-way binding can…

Overlayアプリを7.x→8.0→8.1と対応させる

7.x→8.0 startService ↓ startForegroundService TYPE_PHONE TYPE_PRIORITY_PHONE TYPE_SYSTEM_ALERT TYPE_SYSTEM_OVERLAY TYPE_SYSTEM_ERROR ↓ TYPE_APPLICATION_OVERLAY startForegroundは5秒以内に呼び出す。 これだけですね。TYPE_PHONEとかTYPE_SYSTEM_…

Android OreoのOverlayアプリを対応させたはずかパーミッション設定で有効化できない

前提条件 Android 6.0(M)に対応させていること 対応 TYPE_SYSTEM_ALERT → TYPE_APPLICATION_OVERLAY 以上 問題 あれ、切り替えできない。 原因 これAPI27のエミュレーター使っているのが問題でした。 targetSdkVersionとcompileSdkVersionを27にしたら解決。…

【Kotlin】スコープ拡張関数まとめ

よく忘れるのでまとめた。 スコープ拡張関数 関数名 it 戻り値 定義 also ○ 自身 fun T.also(block: (T) -> Unit): T { block(this); return this } apply ✕ 自身 fun T.apply(f: T.() -> Unit): T { f(); return this } let ○ 最後 fun T.let(f: (T) -> R):…

Android Studioの危ない置換機能

たまにやってしまうこの置換時のエラー。検索から来る人のためにエラー文を。 エラー文 Some error(s) occurred while processing annotations. Please see the error messages above. Unresolved reference: hogehoge 原因 カスタムView、ViewName.java(自…

IntelliJ+Jersey+Kotlinで環境構築

事の始まり Raspberry PiでAPIサーバー作るぜ! KotlinかC#使いたいぜ ASP.NET Coreはまだ早いな Kotlinだ! Android開発やPHPでよく使ってるからIntelliJだな。 Jerseyというものを使えば良いのか ってな感じで選びましたが環境構築で詰みまくったのでここ…

Electron+TypeScript【知識を付ける編】

Electron+TypeScriptを使って社内で使う業務用ソフトを作ることになりました。 それに至る経緯と、どういう時にElectronが使えるのかを考えたメモです。 なぜそれに至ったか なぜElectronなのか 社内で使っているのはWindowsとMacです。なのでマルチプラット…

【Windows】CSVなどからSQLiteへ

業務上エクセル、CSVなどからSQLiteのデータベースに変換することがよくあるのでメモです。 Bash on Ubuntu on Windowsのお陰でWindowsでもコマンドから簡単に行えるようになりました。 そこら辺の説明は他に任せます。 Bash on Ubuntu on Windowsをインスト…

【Android】ToolbarのTitleを後から変更する

Kotlinの書き方ですがJavaとやってることは同じですのでご了承ください。 やりたいこと ToolbarのTitleを更新したかった。 セットする時はよくこんなコードを見ます。 val toolbar = findViewById(R.id.toolbar) as Toolbar toolbar.title = "" setSupportAc…

Raspbianでユーザー名piを名前変更する。

※以下は自分が分かりやすいように書いたものですので正確性に欠ける可能性があります。 その場合はご指摘ください。 名前変更 方針 今piに居る状態でしょう。 自分自身の名前は変えられないので一時的に使うユーザーを作り、そこに移動して名前を変えて戻り…