Android関連のことを調べてみた2022年01月05日

Android関連のことを調べてみた2022年01月05日

FlutetrでrequestPermissionのエラー

### FlutetrでrequestPermissionのエラー

Flutterで通知アプリ仕込んでます。

あと少しだったのですが、このエラーが出てAndroid版のビルドはできるのですが、アプリが起動しない。この時点でiOS版はビルド通っていた。

エラーは

“`
E/flutter ( 5307): [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: MissingPluginException(No implementation found for method Messaging#requestPermission on channel plugins.flutter.io/firebase_messaging)
E/flutter ( 5307): #0 convertPlatformException (package:firebase_messaging_platform_interface/src/method_channel/utils/exception.dart:1

元記事を表示

【Android&Firebase】Googleログイン実装のDeprecated箇所をリファクタリングしてみた

# はじめに

皆さん、ごきげんよう!れぶです!
2回目のQiitaへの投稿になります。新年早々どこにも外出せずに執筆していきます。

今回の記事は、Firebaseを用いてAndroidアプリへGoogleログイン機能を実装することに関した内容になります。具体的には、Firebaseの公式ドキュメントに掲載されているコードの中で、Deprecated箇所(startActivityForResultとonActivityResult)があるので、リファクタリングしていきます。Googleログイン機能のリファクタリング実装が書かれた記事はあまりないと感じたので、自身がJavaで書いたコードをもとに紹介します。

それでは、参りましょう!!

# この記事の対象者

* 今後Firebase Authenticationを用いて、AndroidアプリにGoogleログイン機能を実装したい方
* 既にGoogleログイン機能を実装済みだけど、Deprecated箇所のリファクタリングが知りたい方

# 開発環境

* Mac
* Android Studio(4.1.2)
* Fireba

元記事を表示

Couchbase Lite開発: Kotlin拡張機能

## はじめに

Couchbase Lite Android 3.0.0-beta02では、Kotlinアプリ開発における慣用的なプログラミング作法のサポートが導入されています。

これによって、Kotlin開発者は、一般的なKotlinアプリケーション開発に用いられる実装パターンを用いてアプリを構築できるようになりました。Couchbase Kotlin SDKは、Couchbase Lite for Androidとシームレスに統合されており、Java APIと同等の機能を備えています。

Couchbaseをモバイルアプリケーションで利用する意義については、以下の記事をご参考ください。

https://qiita.com/yoshiyuki_kono/items/3abd5e32801060a449d2

## Kotlin拡張機能

## 概要

Kotlin開発者は、Couchbase Liteを利用したアプリケーション構築のために、Java APIとの完全な互換性に加えて、Kotlin拡張機能を利用できます。

Kotlin拡張機能パッケージには以下のサポートが含まれ

元記事を表示

【Android】初心者向け シンプルなドラムロール式DatePickerサンプル

Android開発初心者の私はシンプルなドラムロール式のDatePickerを実装しようとした時に、意外と複数のサイトを参照しながら試行錯誤しました。
同じような初心者の方の参考になれば幸いです。

#サンプルの仕様
・日付入力欄は直接日付を入力することもできる。
・日付入力欄をクリックするとドラムロール式DatePickerが表示される。
・入力欄が空白など日付として認識できない場合、初期値として今日がDatePickerに表示される。
・入力欄が日付の場合、DatePickerには入力欄の日付が初期表示される。
・DatePickerで選択した日付が入力欄に反映される。

#環境
android studio arctic fox | 2020.3.1 patch 4
compileSdk 32

#ドラムロール式DatePickerのイメージ
![Screenshot_1641257836.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/546646/757ecb2d-7383-3a2a-5573-

元記事を表示

Kotlinの初期化を雑に書いてはダメ!

# はじめに

Kotlinを書かれる方に質問です!!
例えばBuilderパターンで生成されるインスタンスをクラス内で使い回したいとき、
反射的にこんな風に書いていませんか?

“`kotlin
class Sample {
companion object {
// 使い回したいインスタンス
private val a: A = A.Builder().build()
}
}

class A {
internal class Builder {
fun build(): A = A()
}
}
“`

`companion object` の中で初期化処理を書いておけば、
Sampleクラスで何個もインスタンスが作られようと `Sample.Companion.a` は使いまわされます。

“`kotlin
class Sample {
fun getA() = a

companion object {
private val a: A = A.Buil

元記事を表示

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

#はじめに
最近Androidアプリを作りたくてKotlinを学習してます。基礎です。
今回はスコープ関数をまとめていきたいと思います。

#スコープ関数
この関数は変数のスコープを変更する関数で、コードを簡略化、可読性の向上ができます。
使わなくても機能を実装することは可能です。
なくても困らないけどあれば便利ってやつですね。

#with関数
同じオブジェクトに繰り返し処理を行う場合に有効です。

次のようなPersonクラスを用意します。

“`Kotlin
class Person(val name: String) {
var age: Int = 0
fun message(): String {
Log.d(“message”, “私は $name です。 $age 歳です。”)
}
}
“`

with関数を使わない呼び出し側はこのようになります。

“`Kotlin
val person = Person(“REON”)
person.age = 21
person.message() // 私は REON です。 21

元記事を表示

【android】ActivityからActivityの画面遷移

こんにちは。
2021年の年末はAndroid Studioをいじくっていました。完全に素人からのスタートで、触って3日くらいです。
ただ、私は一応、javaについては足し算引き算できるくらいには書けますので、
つまづく所は主にAndroidならではの要素の部分でして、つまりは、画面の表示だったり画面遷移の話だったりするわけです。

#### 環境

android studio APIレベル32 (java)

# ActivityからActivityの画面遷移

そもそもActivityで画面遷移すべきかどうか、という話があるようです。~~調べていると情報が錯綜する!~~
おそらくはActivityは「シーン」で1つだけあれば良く「その中」での切り替えはFragmentを使うというのが、”たぶん”正しそうです。
ただ私がざっと調べた所「Fragmentはあくまで画面表示パーツであって画面そのものではない」理解に行きました。画面の一部を書き換えるイメージ。で、画面の大部分を置き換えればそれは実質画面の切り替えになる、とかそういう。(そして大画面のタブレットなら両方並べても良いじゃない

元記事を表示

1分で出来る最新で最小なADB環境の構築[Windows編]

# ※ わざわざAndroidStudio入れたくない人向けです

1. XDAから**15 seconds ADB Installer v1.4.3**を[ダウンロード](https://forum.xda-developers.com/t/official-tool-windows-adb-fastboot-and-drivers-15-seconds-adb-installer-v1-4-3.2588979/#post-48915118)する。
1. Googleより最新版の**Platform-Tools**を[ダウンロード](https://dl.google.com/android/repository/platform-tools-latest-windows.zip)をする。
1. **手順1**で落としたファイルを解凍後、管理者権限で実行してインストールする。
1. cmdで`adb version`を入力して確認する。
1. ↑が成功していればインストール完了。そのままだとかなり古いバージョンのツールを使うことになるので`C:\\adb\`以下に**手順2**を解凍

元記事を表示

AudioTrackでバックグラウンドでも音飛びせずに音楽をストリーミング再生する方法

# はじめに

昨年(2021)末、Androidで独自に波形生成した音楽を再生してバックグラウンド再生にも対応するアプリ(東方BGM on VGS)を作り直した際に、波形データの再生にAudioTrackを使ってみたのですが、似たようなアプリを開発する方のために参考情報として要点を記します。

「独自に波形生成した音楽を再生」するアプリを作る人は稀だと思います。というのも、私が東方VGSを最初に公開した2013年春先以来(そろそろだいたい丸9年間ぐらい?)、少なくとも私が知る範囲では類似アプリは存在しなかったので。

ですが、バックグラウンドで音楽をストリーミング再生するアプリを作っておられる方々にとっては若干有益な情報かもしれません。

> なお、アプリの公開が完了したらソースコードも全部OSSで公開しようと思っています。このアプリをコードベースにすれば、色々なVGS楽曲アプリの開発が低コストでできるので、あとは楽曲データ作成に掛かる作業コスト分をペイできる程度のシロモノであれば楽曲の版権を抑えている各社で自由にお小遣い稼ぎして頂ければ良いかな…という青写真を勝手に描いているの

元記事を表示

AndroidManifest.xml をビルド環境ごとに使い分ける(結合する)

AndroidManifest.xml は

* 主流の方 ( `src/main/AndroidManifest.xml` ) を
* 環境ごとの `AndroidManifest.xml` に結合してビルドできる

本記事では、release の buildTypes のみ下部設定値を追加する(結合する)例を記述する。

“`



“`

手元の環境

* Android Studio 2020.3.1
* gradle 7.0.3
* JDK 1.8
* Windows 11(21H2)
* Android SDK
* compile, target, min 共に 28

## (1) 環境ごとに AndroidManifest.xml を定義する

`{プロジェクト名}/app/src`

元記事を表示

RecyclerViewを反転させる方法

#はじめに
チャットなどで、最下部を最新にしたいケースがあると思います。
その際の設定を備忘録的に残しておきます。

#反転方法

反転させること自体は簡単です。
以下を対象に設定するだけで反転します。

“`
app:reverseLayout=”true”
“`

#注意点
反転させることで、0番目が最下部になります。
その為、追加読み込み時や特定のポジションに移動させる際には少々工夫が必要になります。

#さいごに
反転させる設定自体は簡単でも、取り巻く環境によっては工夫が必要になります。
この辺りの設定は慎重に行いたいところですね。
時間ができたらPagingあたりの実装も記事にしていこうと思います。

元記事を表示

【Android Studio & GitHub】Cannot load information for github.com/アカウント名が出た際の解決方法

# はじめに

皆さん、ごきげんよう!れぶです。
この記事がQiita初投稿になります。今年は特に張り切ります。

今回は、Android Studioで[Share Project On GitHub]を選択した際に出るエラーに対する解決方法を書いていきます。Android Studioで実装したコードもろもろをGitHubに載せたい人は多いと思います。実際に自分がこのエラーで躓いたので、リアルに解説していきます。

それでは参りましょう!!

# この記事の対象者

Android Studioで「Share Project On GitHub」を選択した際に、
「Cannot load information for github.com/アカウント名: Request response: Bad credentials」が出る方

# 実行環境
* Mac
* Android Studio 4.1.2

# 前提条件
* gitがパソコンにインストールされている
* Githubで発行したアクセストークンをAndroid Studioに登録済み
* そのアクセストークンをメモし

元記事を表示

Android サービスの作成 (2022年1月 記事作成)

# Android サービスとは

Android端末でバックグラウンドで動作するアプリケーションです。

# Empty Projectの作成

Android Studioの[File] – [New] – [New Project] から [Empty Activity]を選択する。ただしEmpty Project以外でももちろんOKです。


Language: Kotlin以外は適当でOKです。

# サービスとして動作するクラスの作成

Android Studioの[File] – [New] – [Kotlin Class/File]を選択する。

キャスト中や記録中にプライベート情報が公開されます

Androidで新しいアプリをインストールして設定を行っていると、以下のメッセージが表示されることがあります。

***「キャスト中や記録中にプライベート情報が公開されます」***

個人情報がネットに公開される???
ちょっと驚くというか、ビビりますよね。
しかもこのメッセージを表示しているのがAndroidなのか、そのアプリなのか、それ以外なのかも判断できないことがあります。

このメッセージを表示しているのはAndroidです。
iOSは知りませんが、Androidは自身が発するメッセージに、その発信元がAndroidであることを明記しません。
私はその仕様が大嫌い。不親切極まりない。
何度か遭遇すれば慣れますけど、初見のときは、本当にその指示に従っていいのかどうかとても悩みます。
OSのアップデートとか特にそう。

そして今回のメッセージのように、英語からの機械翻訳が下手で、元メッセージのニュアンスが欠落しているときも不安になります。

Androidの言語を英語にすると以下の表示になりました。

***”Exposing sensitive info during casti

元記事を表示

オーバースクロール効果を無効にする方法

android12からスクロールした際にポヨンというようなアニメーションをするようになりました。

こちらはデフォルトでアニメーションする為、アニメーションをさせたくない場合にどうすれば良いのかをまとめてみました。

# xmlに記載する

“`
android:overScrollMode=”never”
“`
こちらをオーバースクロール効果させたくない、スクロールするViewのxmlに記載すると無効化できます。

# プログラムで無効にする場合

“`
recyclerview.overScrollMode = View.OVER_SCROLL_NEVER
“`

# アプリ全体で無効にしたい場合

xmlと同じですが、こちらをxmlではなくstyleやtheme等にも設定することができます。

“`
android:overScrollMode=”never”
“`

# 最後に

こちらを設定するとandroid12以下の端末では、EdgeEffectが無効になります。
スクロールの端に来た時に出る半円のエフェクトです。

## 公式リファレンス

元記事を表示

【Android】初心者向け 標準Spinnerを代替するドロップボックス

Android標準のウィジェットSpinnerは便利ですが、ぱっと見で選択できることがユーザーには分かりにくい気がします。(SpinnerのUIカスタマイズ方法を私が知らないだけかも・・・)
Spinnerと同等の機能を持ち、見た目も選択可能なことがひと目でわかるドロップボックスを紹介します。
AutoCompleteTextViewを利用した有名な方法だと思いますが、一通り動作するフルセットのサンプルとしてご利用ください。

#ドロップボックスの外観
![dropbox_image1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/546646/922059df-8bb5-1ffa-653a-967aea612273.png)

#用意したサンプルプログラムの外観
![Videotogif.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/546646/998ae8cc-961a-502e-8769-79b3bdae1646

元記事を表示

AMD CPU搭載PCでAVDのVMアクセラレーションを有効化する

# 目的
– AMD CPU搭載PCでAVDのVMアクセラレーションを有効化する。

# 環境
– PC:Ryzen 5 3400G, ASUS TUF B450M-PLUS GAMING
– OS:Windows10 Professional 21H2
– Android Studio 3.6.3

# 準備

– AMDのCPUでAVDのVMアクセラレーションを有効とするには、以下の条件がある。

* Android SDK Toolsのバージョンが26.1.1以降。
後述するWindows ハイパーバイザープラットフォーム(WHPX)を使う場合は27.3.1以降。
* x86ベースのシステムイメージを持つAVD。
* Windows10 Ver1803以降。
* 異なるVM(VMware, Virtual Box等)内では有効化できない。VMアクセラレーションを使用するAVDは別のVM内からではなくホストPCから直接実行すること。
* CPUはRyzen推奨。
– AMD CPU搭載PCの場合、AVDのアクセラレーションを行うには以下2つの選択肢が

元記事を表示

Android ビルド環境の切り分けをする

build.gradle の設定をして、表のような分類で

* (1) ビルドを切り分けする
* (2) 設定値を切り分けする(free と pro で分ける)

| | debug | staging | release |
| — | — | — | — |
| free | デバッグ用フリー版 | ステージングフリー版 | 本番フリー版 |
| pro | デバッグ用プロ機能版 | ステージングプロ機能版 | 本番プロ機能版 |

手元の環境

* Android Studio 2020.3.1
* gradle 7.0.3
* JDK 1.8
* Windows 11(21H2)
* Android SDK
* compile, target, min 共に 28

## (1) ビルドを切り分けする

プロジェクト作りたての場合を想定する。build.gradle(モジュール単位) > `buildTypes` は以下のような作りである。

`

元記事を表示

[Android]Installed Build Tools revision 31.0.0 is corruptedエラーの対策

概要

以下のエラーが出た時の対応策

“`
Android Studio error “Installed Build Tools revision 31.0.0 is corrupted”
“`

現象

このエラーはGradleの設定が以下の時にBuildすることで出るようです。

“`gradle
compileSdkVersion 31
buildToolsVersion “31.0.0”

defaultConfig {
applicationId “io.github.kurramkurram.bubblememo”
minSdkVersion 30
targetSdkVersion 31
versionCode 1
versionName “1.0”

testInstrumentationRunner “androidx.test.runner.AndroidJUnitRunner”
}
“`

原因

bui

元記事を表示

FlutterでAlgorithm HmacPBESHA256 not availableのトラブル

## Algorithm HmacPBESHA256 not availableのトラブル

#### 参考にしたサイト
https://note.com/iga34engineer/n/ndbe247c8e23a

のサイトを参考にしながら、keyを作成する。
作成されたkeyのパスワード、エイリアス名、jksファイルの場所をkeystore.propertiesファイルに書き込む

keystore.propertiesファイルの作成など、リリースビルド全般については、以下を参考にした。

https://qiita.com/kasa_le/items/d23075d817f42e869778

build.gradleはreleaseのみにする。

とりあえすこれでビルドは通った。

すみません、ほぼメモです。

元記事を表示

OTHERカテゴリの最新記事