Android

Androidの minifyEnabled は必ず有効にしましょう

結論 appにあるbuild.gradleで見かけるisMinifyEnabledはリリース用は必ずtrueにしよう // app/build.gradle.kts android { ... buildTypes { getByName("release") { isMinifyEnabled = true // <= これ proguardFiles(getDefaultProguardFile("proguard-an…

Android TVアプリについて雑に調べた

Android TV にもOS12があると知り、興味を持ったので少し調べた。 現段階では Android12 Developer Preview2が最新で、これから段々とUpdateされていくんだろう。 developer.android.com 開発機器としては、ADT-3 というデバイスがあるらしい。 sites.google…

Kotlin Multiplatform MobileでFirebaseを使いたい

最近はKMMに夢中 最近はすっかりKotlin Multiplatform Mobileにお熱である。 個人アプリをKMM化したのだが、Firebase Realtime DatabaseがKMMに対応してるんだろうか? どこかで「JavaコードはKMMの共通では使えない」と見たので、たぶん使えないはず。 調べ…

Unable to determine application id: xxx com.android.tools.idea.run.ApkProvisionException: No outputs for the main artifact of variant: xxxx

現象 さっきまでビルドしていたAndroid Studioのプロジェクトがビルドエラーとなった。 Unable to determine application id: xxx com.android.tools.idea.run.ApkProvisionException: No outputs for the main artifact of variant: xxxx 解決方法 Invalida…

Android公式の oss-licenses-plugin を試してみた

Androidアプリのライブラリを表示するためのGoogle公式 Gradle Pluginがあると聞いて、さっそく試してみた。 GitHub code github.com screen shot 感想 導入:とっても簡単 表示:とてもシンプルすぎて味気ない感じ 懸念:TensorFlowやOpenCVなど使ってない…

No such property: scope for class: com.android.build.gradle.internal.variant.ApplicationVariantData

現象 Android Studioを4.1にupdateしてビルドするとエラーが出た。 A problem occurred configuring project ':app'. > groovy.lang.MissingPropertyException: No such property: scope for class: com.android.build.gradle.internal.variant.ApplicationV…

Androidカメラであつ森のカブ価を認識したい - チャレンジ編

やりたいこと(おさらい) あつ森のカブ価を表示したとき、Androidのカメラでカブ価の数字のみを認識したい 前回 banbara-studio.hatenablog.com Firebase ML Kitの英語のみオンデバイスモデルで数字だけを読み込む → 失敗 今回 tess-twoライブラリで試して…

NoClassDefFoundError: Failed resolution of: Landroid/view/View$OnUnhandledKeyEventListener

現象 Android ThingsでアプリをビルドしたらLogcatにエラーログが出ていた。 このエラー、前は出てなかったような... アプリは強制終了しないし、エラーログが流れるだけ、不思議だ。 エラーログ Logcat 2020-06-26 09:30:52.258 2421-2421/? I/main: type=1…

Androidカメラであつ森のカブ価を認識したい

やりたいこと あつ森のカブ価を表示したとき、Androidのカメラでカブ価の数字のみを認識したい 具体的には、この 560 という数値のみをスキャンし、正規表現で取得したい。 理想は、Switchにスマフォをかざす > アプリがカブ価を認識 > カブ価を嫁にLINEで共…

[日本語訳] Androidデベロッパーチャレンジ:MLを活用した優勝アプリ

面白そうな記事を見つけたので、Google翻訳で日本語化しつつ紹介したい。 全文紹介するのではなく、気になった箇所だけをピックアップしていく。 元記事 blog.google 世界中のより多くのデベロッパーが機械学習を使用してアプリを構築することを奨励するため…

Kotlin Coroutinesパターン&アンチパターン

Kotlin Coroutinesパターン&アンチパターン Coroutineを理解するため、以下のサイトを日本語訳しました。 https://proandroiddev.com/kotlin-coroutines-patterns-anti-patterns-f9d12984c68e 目次 非同期呼び出しをcoroutineScopeでラップするか、Supervis…

Android開発の最新バージョンリンク集 (Android Studio, Support Library, buildToolsVersion, etc...)

開発に必要な最新バージョンを知るための情報リンクをメモとして載せておく。 Android Studio Android Studio Release Updatesfds https://androidstudio.googleblog.com/ Support Library Recent Support Library Revisions | Android Developers https:…

Android Studioで保存すると自動でコード整形したい

コードを書いて「コード整形+インポート最適化+ファイル保存」 ←この作業を1アクションで済ませたい。 やり方は2パターンある マクロを使う方法 プラグインを使う方法 マクロを使う方法 以下の動作をマクロとして記憶させて⌘S(もしくはctrl+s)に割り当て…

TransitionDrawableでFragmentをクロスフェード遷移させる

TransitionDrawableでFragmentをクロスフェードさせながら切り替えてみた。 色合いはさておき、なかなかカッコいい 使い所としては、アプリの紹介やチュートリアル画面あたりだろうか。 実装方法 まずdrawable内にtransitionタグのリソースxmlを作成する <transition xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@color/first" /> </item></transition>

Lottie-Androidで素晴らしいアニメーション試す

Lottie-Androidとは Airbnbが開発したアニメーションを簡単に表示できるライブラリ 詳しくは公式ページを参照 https://airbnb.design/lottie/ AndroidのGithubはここ https://github.com/airbnb/lottie-android 導入 app/gradleに以下を追加 implementation …

Navigation Architecture Componentを試した

Google I/O 2018でNavigation Architecture Componentが追加されてからずっと気になっており、そろそろ試さねばと思って実装してみた。 シングルActivity+多Fragmentの遷移を作っていく。 環境 Android Studio 3.2 Beta 5 Build #AI-181.5281.24.32.4913314…

Hyperion-Androidを使ってみた

社内でHyperion-Androidがデバッグに便利、という情報を得たので試しに使ってみた。 環境 Android Studio 3.2 Beta 5 Build #AI-181.5281.24.32.4913314, built on July 26, 2018 JRE: 1.8.0_152-release-1136-b04 x86_64 JVM: OpenJDK 64-Bit Server VM by …

Androidでの非同期処理の8つの方法

Androidでの非同期処理の8つの方法 この記事は自分の勉強のため以下リンクの日本語訳しました。 8 ways to do asynchronous processing in Android and counting https://android.jlelse.eu/8-ways-to-do-asynchronous-processing-in-android-and-counting-f…

Android Studioで ExecutionException: java.lang.OutOfMemoryError: GC overhead limit exceeded

環境 Android Studio 3.0.1 Build #AI-171.4443003, built on November 10, 2017 JRE: 1.8.0_152-release-915-b08 x86_64 JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o Mac OS X 10.12.6 Java 8 現象 とあるプロジェクトにライブラリ追加したりコード…

Android Studio 3.1.1でSyncエラー Data Binding annotation processor version needs to match the Android Gradle Plugin version. You can remove the kapt dependency com.android.databinding:compiler:3.1.0 and Android Gradle Plugin will inject the right version.

タイトルが長すぎるけど気にしない。 Android Studio 3.1.1にアプデしたらSyncエラーが出た。 Data Binding annotation processor version needs to match the Android Gradle Plugin version. You can remove the kapt dependency com.android.databinding:…

Androidで処理時間を計測するならSystem#currentTimeMillisよりもSystemClock#uptimeMillis

タイトルまんまの内容。 メソッドの処理時間を計測したかった Androidで処理時間を計測しようとSystem.currentTimeMillis()を使ってたら、SystemClock.uptimeMillis()のがいいよとアドバイスをもらった。 なぜか? System.currentTimeMillis()の場合、端末時…

Android KotlinでRealmを使う

環境 Android Studio 3.0.1 kotlin_version = '1.2.21' Realm 5.0.0 資料 Realm公式 Realm: Create reactive mobile apps in a fraction of the time Realmの導入 プロジェクトのbuild.gradleにrealmを追加 buildscript { ext.kotlin_version = '1.2.21' rep…

nowで作成したAPIをKotlinとRetrofitとRxJavaとJacksonでGET/POSTする

いつもAndroidでRetrofit+RxJavaを使ってAPI通信する処理を書いてるが、今回はKotlinで挑戦してみる。 ついでに、使ったことのないnowもJacksonも触ってみた。 作成するもの nowを使ったnodejs製のAPIモック(express) Androidアプリ(Kotlin/Retrofit/RxJa…

IllegalArgumentException: *** is not part of the schema for this Realm

環境 Android Studio 2.3.3 Java8 Kotlin 1.1.51 realm 3.5.0 現象 既存のJavaのAndroid StudioプロジェクトにKotlinを導入してビルドしたところ、起動時以下のエラーが必ず発生してお手上げとなった。 java.lang.RuntimeException: Unable to resume activi…

KotlinでDatabaseException: mypackage.Item does not define a no-argument constructor.

状況 Android Studio: 3.0.1 Kotlin: 1.2.10 firebase-database: 11.8.0 現象 Kotlinの勉強がてらFirebaseのRealTime Databaseでデータを取得しようとしたらこんなエラーが出た。 com.google.firebase.database.DatabaseException: Class my.com.package.Ite…

Android Studioで「Failed to resolve: com.android.support:appcompat-v7:27.+」

現象 久しぶりにAndroid Studio2.3.3を起動し、New Projectを作って初回Gradle Syncが実行されると、以下のメッセージが表示された。 Error:(26, 13) Failed to resolve: com.android.support:appcompat-v7:27.+ Install Repository and sync project Show i…

The following classes could not be instantiated:- android.support.v7.widget.AppCompatTextView

現象 Android Studio 2.3.3でPreview画面に何やらerrorが出とる。 The following classes could not be instantiated:- android.support.v7.widget.AppCompatTextView java.lang.NullPointerException at android.content.res.Resources_Delegate.getValue(R…

Androidログライブラリ orhanobut/logger を試す

デフォルトのLogクラスは気が利かないので、 いいライブラリを探してたらこんなの見つけた。 github.com 2016/10/23時点でスター数4835 信頼ありそう! さっそく使ってみよう。 まずはbuild.gradleに追加 dependencies { compile 'com.orhanobut:logger:1.15…

generate sigend apkでError: Expected resource of type string [ResourceType]

アプリをリリースしようとgenerate sigend apkを実行すると、以下のエラーが出てきた。 Information:Gradle tasks [:app:assembleRelease] /パス/Fragment$$ViewBinder.java Error:(53) Error: Expected resource of type string [ResourceType] Information…

UbuntuでAndroidのスクリーンショットを日付ファイル名で保存したい

毎度忘れるのでブロクに記録しておく まず以下のシェルスクリプトを作成 今回はファイル名をscreenshot.shとした #!/bin/bash DATE=`date +"%Y-%m-%d-%H-%M-%S"` FILENAME="s-${DATE}.png" echo "capturing ${FILENAME}..." adb shell screencap -p "/sdcard…