Android関連のことを調べてみた2023年02月13日

Android関連のことを調べてみた2023年02月13日
目次

Flutter Androidビルド作成が失敗するKeystore file ‘android/app/key.jks’ not found for signing config ‘release’.

# はじめに
FlutterアプリをGoogle Play Storeに公開する手順は以下のような記事で解説されています。

https://gakogako.com/flutter_android_release/

https://zenn.dev/kazutxt/books/flutter_practice_introduction/viewer/42_chapter5_googleplay

ただ、私の場合はその通りにやってもできなかったので、、、ここに記録したいと思います。

**私はAndroidアプリを公開するのは初めてではないので、既にkeystoreファイルは持っています。なので最初の準備はすっ飛ばして進めました。**

だからなのかわかりませんが、`flutter build appbundle`の部分でエラーに見舞われました。。

# 前提
Keystoreファイルの作成、`key.properties`の作成など[ここまでの手順](https://gakogako.com/flutter_android_release/#flutter_cleanする)は

元記事を表示

tasks.register()に渡す第二引数と第三引数に関するメモ

`Plugin`を継承したクラスにてオーバーライドされる`apply()`では、タスクを登録することができる。

“`kotlin
class CustomPlugin : Plugin {
override fun apply(target: Project) {
with(target) {
tasks.register(“customTaskName”, CustomTask::class) {
dependsOn(taskName)

}
}
}
}
“`

タスクを登録する際、`Project`の`tasks`プロパティの`register()`を呼び出す。

第一引数には、タスク名を渡す。

ただ、第二引数に付けられた名前が`type : KClass`となっており、使われ方がよくわからなかった。

そして、第三引数として渡すブロックは`configurationA

元記事を表示

GradleプラグインとGradleタスクの違いのメモ

私は、GradleプラグインとGradleタスクの違いがわからなかった。

Gradle素人として、いくつか疑問が浮かんできた。

「プラグインとタスクの本質的な違いはなんだろう?」

「GradleプラグインとGradleタスクの使う場面ってどこだろう?」

まずは、Gradleプラグインについて調べてみた。

Gradleプラグインは、新しい既存の機能を拡張するために存在している。
そして、Gradleプラグインを使うことで新しいタスクの追加や、既存の設定を上書きしたりすることができるようだ。

ここで出てきたタスクという単語。

そう、Gradleタスクはプラグインによって追加することができるのだ。

:::note warn
もちろん、プラグインをわざわざ作成しなくても、直接**build.gradle**に定義することも可能。
:::

そして、ここでいうタスクとは、Gradleのビルドにおける1つの作業単位を表す。この作業単位とは、実際にはクラスのコンパイルや、JARの作成、そしてJavaDocの作成などのひとまとまりのロジックを意味している。

そしてこのタスクは、別のタ

元記事を表示

【Android】フォントを変更する

# フォルダの作成
resを右クリック→New→Directory でダウンロードしたフォントの置き場(ここではmy_fontと命名)になるフォルダを作っておきます

![スクリーンショット 2023-02-12 22.46.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2394054/7199dff7-a12b-bc39-e402-137e4e8e99df.png)

以下のサイトなどからダウンロードし、先ほど作ったフォントの置き場であるmy_fontフォルダにドラック&ドロップでAndroidStudio内に持ってきます

[Google Noto Fonts](https://fonts.google.com/noto)

[Google Fotnts](https://fonts.google.com/)

# 使用
XML上の使用したいテキストの要素に
“`
android:fontFamily=”@my_font/〜〜〜〜”
“`
と先ほど追加したフォルダからfontFam

元記事を表示

kotlin coroutine

# サマリ
#### コンテキスト
コンテキストはスレッドのこと
withContext(Dispatchers.IO)
Dispatchers.Main
Dispatchers.IO
Dispatchers.Default

#### スコープ
スコープとはcoroutineが制御される範囲(追跡可能な範囲)
viewModelScope.launch
await:値を返す
※suspend 関数は、他の suspend 関数から、または、launch などのコルーチン ビルダーを使って新しいコルーチンを開始することによってのみ呼び出せる。

## コンテキスト
#### メインセーフ
suspend 関数は、他の suspend 関数から、または、launch などのコルーチン ビルダーを使って新しいコルーチンを開始することによってのみ呼び出せる。

“`kotlin
suspend fun fetchDocs() { // Dispatchers.Main
val result = get(“developer.android.

元記事を表示

Cloud Storage for Firebaseのエミュレーターに接続して画像をアップロードしたら失敗した話

開発中のAndroidアプリで、ローカルで起動したFirebase Emulator SuiteのCloud Storageに接続するように設定しました。

“`shell
FirebaseStorage.getInstance().useEmulator(“10.0.2.2”, 9199)
“`

しかし、通常通り画像のアップロード処理を行なってみたところ次のようなエラーが発生しました。

“`shell
StorageException has occurred.
User does not have permission to access this object.
Code: -13021 HttpResult: 403


com.google.firebase.storage.StorageException: User does not have permission to access this object.
“`

調べてみたところ、自動的に読み込まれた**storage.rules**の内容

元記事を表示

Android Studioを複数起動した際に「Timeout waiting to lock journal cache」というエラーが出た時に…

# Timeout waiting to lock journal cache :joy:
セキュリティソフト(ESETなど)を入れている場合に、Gradle周りでビルドが終わらないなどの不都合が発生することがあります。

特に、Android Studioを複数起動した際に、下記のような「**Timeout waiting to lock journal cache**」というエラーが出てしまうのは開発効率的な意味でとても面倒な問題です。

“`terminal
Gradle could not start your build.
> Cannot create service of type BuildSessionActionExecutor using method LauncherServices$ToolingBuildSessionScopeServices.createActionExecutor() as there is a problem with parameter #21 of type FileSystemWatchingInformation.
>

元記事を表示

MediaPad T2 Pro 10.0 へLineage OS 18.1を導入する

SIMフリーで4Gに対応しており、10インチというなかなかの大画面液晶を搭載した型落ちタブレット**MediaPad T2 Pro 10.0**。
Androidバージョン6.0の公式ROMが中々使いづらく、省電力を意識し過ぎたためかクロック数を本来利用できる値の1/4に強制的に固定しているため、常にもっさりとした動作になる。
しっかりと中華タブレットでありがちな**使えないことはないけどイライラする**の要素を含んでいるのだ。
# 10インチ版の既出記事がない
7インチ版へLinege OSを導入する記事はいくつか存在するものの、なぜか10インチ版への導入解説を行っているサイトを見つけることはできなかった。英語版ではいくつかあったが、日本語版はおそらく存在しない。
色々試行錯誤した結果、Linege OS 18.1 (Android 11)を導入することができた。流石にOSが新しいだけあって使いやすい。バージョンの低さが理由でアプリが利用できない問題に遭遇することもなくなった。
# 準備するもの
– BootloaderをUnlock済みのMediaPad T2 Pro 10.0

元記事を表示

[Android]java.lang.IllegalArgumentException: Unable to create converter for class com.jp…のエラーの解決方法

## エラー:java.lang.IllegalArgumentException: Unable to create converter for class com.jp…

解決:**.addConverterFactory(GsonConverterFactory.create())** がないとだめ上記エラーが出る

“`
val retrofit = Retrofit.Builder().baseUrl(“http://~~~~”)
.addConverterFactory(GsonConverterFactory.create())
.build()
“`

“`
implementation( “com.squareup.retrofit2:converter-gson:2.3.0”)
“`
これを入れると **GsonConverterFactory**がimportできるようになる

元記事を表示

[Android][compose]api取得でとりあえずUseCaseまで実装できたから通信確認したい

## とりあえずUseCaseまでできたから通信確認したい
Retrofit2とgsonを使います

“`
implementation(“com.squareup.retrofit2:retrofit:2.9.0”)
implementation( “com.squareup.retrofit2:converter-gson:2.3.0”)
“`

“`
//どこかのView,Screenに以下を設定

val retrofit = Retrofit.Builder()
.baseUrl(“http://~~~~”)  //通信先
.addConverterFactory(GsonConverterFactory.create())
.build()
val apiClient = xxxApiClient(retrofit)
val dataSource = xxxDataSource(apiClient)
val repository

元記事を表示

Flutterとはなんぞや?

目次

[はじめに](#はじめに)
[自己紹介](#自己紹介)
[私の今知っている知識](#私の今知っている知識)
[そもそもFlutterとは…?](#そもそもFlutterとは…?)
[Dartとはなんぞや](#Dartとはなんぞや)
[記事を書きながら得た知識](#記事を書きながら得た知識)
[まとめ](#まとめ)

はじめに

Flutterとはなんぞや?
ということで、なんでしょうか、最近良くネットでFlutterという単語を聞きますがいったいなんのことがわかっていません。
ということで、少し調べてみようということで記事を投稿してみました。

それではいってみよう!

###
自己紹介

経験1年半ほど。
現在開発案件に参画中。
私は、Java Spring 少々。Python経験1年ほど(Selenium)で構成されています。

###
私の今知っている知識

– AndroidやiOSの開発をどちらともできるらしい
– 「Dart」というものが関係しているらしい
– Windowsではビルドできない

全く知りません。ということで、これからグーグル先生を

元記事を表示

【Flutter】スプラッシュスクリーンにアニメーションを導入する

## 完成物はこちら
engolf_splash_compress.gif

## Lottieとは

https://lottiefiles.com/

Lottieはオープンソースのアニメーションファイル形式です。
このファイルの特徴は、ファイルサイズの軽量化、高品質、インタラクティブ、実行時に操作が可能な点です。

現在、App Storeのトップ500のアプリケーションは、ユーザーを引き付け、コンバージョンを高めるためにLottieを使用しているそうです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/261934/e41c091c-b03f-4bf0-9f50-889cb2d502c3.png)

## 構

元記事を表示

AR FoundationのAR Occlusion Managerを使ったときって実機でどこまで動くの?

## 事の始まり
AR FoundationにAR Occlusion Managerってあるなぁ
でもAR CoreとAR Kitでオクルージョンの処理は別ものなのにどうやって共通化しているんだろ?
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705249/84616200-b776-3946-38b0-0970b137149c.png)

実機で見たときにどんな動作の違いが出るんだろうか??

検証しました!

## 環境
Unity 2019.4.29f1
AR Foundation 4.1.7

Device:
* Android
* SONY Xperia 1 III (Depth API対応機種)
* Huawei P20 Pro(Depth API非対応機種)
* iOS
* iPhone 13 Pro Max (LiDAR搭載機種)
* iPhone 11 (LiDAR非搭載機種)

## やったこと
ARアプリを作成、AR Occlus

元記事を表示

[Android]自アプリからGoogle標準時計アプリのアラーム画面を開きたい[Jetpack Compose]

AndroidManifestに追記
“` AndroidManifest.xml

“`

呼び出すコード

“`kotlin
val context = LocalContext.current
val intent = Intent(ACTION_SHOW_ALARMS).apply {
setPackage(“com.google.android.deskclock”)
}
if (intent.resolveActivity(context.packageManager) != null) {
context.startActivity(intent)
}

“`

https://play.google.com/store/apps/

元記事を表示

Androidアプリを作りたい【開発環境編】

## 概要
 自分が利用してみてよかったサイトのまとめになっています。開発環境の作成から、簡単なアプリの作成までのまとめです。よかったら参考にしていってください。
## 導入
 ここ最近はJavaの勉強を行っているのですが、その勉強の一環としてwebアプリを作成しました。ざっくりいうと2人専用の割り勘アプリなのですが、人数を増やそうとしたところ難易度が飛躍的に跳ね上がったため、ひとまずの完成ということで、新しいものに手を出そうと思います。
 今回は、母があると便利かもということを以前言っていた「__カメラで認識して、楽に家計簿を作成できるアプリ__ 」を目指していこうと思います。
## Androidアプリの開発環境を準備する

https://www.sejuku.net/blog/8462

:::note warn
エミュレータ―を起動しただけでは、仮想端末は起動されていないため、作成したアプリを実行しようとするとエラーが出る。
:::
:::note
解決方法
・仮想端末の電源を入れる。
 →左上に電源ボタンのマークがあるので、押す。
:::

 ここから各種OSに合わせた環境

元記事を表示

AndroidのUIとステートホルダークラス

# はじめに

最近、Adaptive Layoutというライブラリを開発しています。

https://github.com/takagimeow/adaptive-layout

このライブラリを開発していて、UI StateをViewModelで管理すべきなのか、それとも他の方法で管理すべきなのか迷っていました。
というのも、このライブラリではHiltを使ってリポジトリなどをDIすることが基本的にはないため、そういった場合にViewModelは少し冗長なのではないかと感じていました。

そこで、改めてAndroidにおけるUIとはどう定義されているのか、そしてAndroidでは状態をどう捉えていてどのパターンではどの管理方法がベストなのかを少し調べてみたのでメモとしてまとめてみました。

参考程度に読んでいただけると幸いです。

# UIとは

データレイヤから取得されたアプリの状態を視覚的に表現したものを指します。
具体的にいうと、この言葉はアクティビティやフラグメントなどのUI要素を指しています。

:::note warn
ここでいうUI要素は具体的な実装からは独立した用語

元記事を表示

Rubyのバージョンを管理する方法

# 初めに
今回は、自分が仕事をしてるときに必要だったRubyのバージョン管理方法を紹介してこうと思います
### 本文
まず、バージョン管理ツールの`rbnev`をインストールします
“`terminal: rbenvのインストール
brew install rbenv
“`
次に、特定のRubyバージョンをインストールするときに必要となる`libyaml`をインストールします
“`terminal: libyamlのインストール
brew install libyaml
“`
全て終わったら下記のコマンドで適用されてるバージョンを確認しましょう
“`terminal: rubyのバージョン確認
ruby -v
“`
必要なバージョンではなかった場合は下記のコマンドでインストールすることができます
“`terminal: rubyの欲しいバージョンをインストール
rbenv install 3.2.0
“`
最後にインストールしてきたバージョンを適用させましょう
“`terminal: rubyのバージョン適用
rbenv global 3.2.0
“`

###

元記事を表示

自作のAndroidライブラリを手軽に全世界に公開する

# はじめに

最近、Adaptive LayoutというJetpack Compose用のライブラリを公開しました。

https://github.com/takagimeow/adaptive-layout

Androidライブラリの開発と公開を行うことが自分にとっては初めての体験だったため、どのように公開すれば良いのか試行錯誤を繰り返していました。

そんなときに出会ったのがJitPackというサービスです。
このライブラリは、JitPackを使って公開を行なっています。

はじめてAndroidライブラリを公開するにあたり、ものすごく簡単にAndroidライブラリを公開できてしまいました。
この体験をみなさんにもぜひ共有したかったので、今回は忘備録としてまとめてみることにしました。

# JitPackってなに?

Jitpackは、JVMとAndroidプロジェクトのために存在するパッケージリポジトリです。
Gitプロジェクトをオンデマンドでビルドして、すぐに利用可能なアーティファクトと呼ばれる`jar`や`aar`を提供してくれます。

Jitpackでは、プロジェクト

元記事を表示

【Flutter】Firebaseと連携時にエラー

# 初めに
Flutterで個人的に開発途中、Firebaseと連携しアプリをビルド
したところエラーが発生。。

ちょっとみたこと無いエラーだったので
備忘録として記録。

## エラー内容
どうやらappフォルダ直下のbuild.gradleに何かありそう。。

“`
FAILURE: Build failed with an exception.

* Where:
Build file ‘~/flutter_sample/android/app/build.gradle’ line: 29

* What went wrong:
A problem occurred evaluating project ‘:app’.
> Could not find method id() for arguments [com.google.gms.google-services] on project ‘:app’ of type org.gradle.api.Project.
“`
場所を教えてくれている。。
素直にbuild.gradleを確認。。

“`app/build.gr

元記事を表示

プラグインを使ってSVGからJetpack ComposeのImageVectorを生成する

# 概要
svg画像からJetpack ComposeのIcons.Default.PersonのようなImageVector画像をプラグインを用いて生成する方法です。

# 解決したいこと
– SVG画像をJetpack Composeの[androidx.compose.material.icons](https://developer.android.com/reference/kotlin/androidx/compose/material/icons/package-summary)のIconsのような感じで使えるようにしたい
– drawableにvectorを追加したくない
– painterResourceを使用することなくsvgをIconとして使えるようにしたい

## なぜSVG画像をJetpack ComposeのIconsのような感じで使えるようにしたいのか
Iconsのような感じで使えるようにしたい理由としては下記の理由があります。
– painterResourceを使う方法はAndroidに依存してしまうので、Compose Desktopなどでこの方法を

元記事を表示

OTHERカテゴリの最新記事