Android関連のことを調べてみた

Android関連のことを調べてみた
目次

Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionExceptionの解決方法

### はじめに
AndroidStudioで開発しているとたまに以下のようなエラーが発生してビルドが通らなくなったりします。

“`
Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
“`
そんな時に僕が試している解決方法を備忘録として残しておきます。

### キャッシュの削除

File → nvalidate Cashesを選択。
![スクリーンショット 2024-04-14 15.56.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3113615/1b0a2008-7d1a-aa35-e5b2-12ab2e5a5deb.png)

キャッシュをクリアする項目を選択してから

元記事を表示

Android エミュでビルドしたら Failure [INSTALL_FAILED_INSUFFICIENT_STORAGE: Failed to override installation location] というエラーが出た

# これなに
Android エミュレーターでビルドしたら `Failure [INSTALL_FAILED_INSUFFICIENT_STORAGE: Failed to override installation location]` なるエラーが出た。

# エラーログ
ターミナルで出てきたエラーログは以下の通り。
“`zsh
% flutter run –device-id emulator-5554
Launching lib/main.dart on sdk gphone64 arm64 in debug mode…
Running Gradle task ‘assembleDebug’… 105.4s
✓ Built build/app/outputs/flutter-apk/app-debug.apk.
Installing build/app/outputs/flutter-apk/app-debug.apk… 9.6s
Error: ADB exited with exi

元記事を表示

【ChatGPT】30分でAndroidアプリ作ってみた

## はじめに
はじめまして、記事主は2023年8月からAndroidエンジニアとして働いています。
最近個人開発を始めようと思い、Androidの開発環境を整えてみたのですが、ふとChatGPTに作成依頼したらどこまでのものができるのか興味が湧いたので、試してみたいと思います。
使用する言語はKotlinになります。
また、今回作成するアプリは簡単な**ToDoアプリ**です。
それではいきましょう。

## まずは雑に依頼してみる
まず依頼した内容がこちら

![スクリーンショット 2024-04-13 15.03.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3113615/cb7fe4b9-a970-420f-81c2-bcb2a5582141.png)

なんとも雑ですね。回答がこちら

### MainActivity

“`kotlin
import android.os.Bundle
import android.widget.ArrayAdapter
import androi

元記事を表示

AndroidStudioの新しいDiffViewによってPRの差分をGithubライクに見れるようになった

IntelliJ IDEA 2023.3にて、「オールインワンの差分ビューアー」というDiffViewの新機能が登場しました。

https://www.jetbrains.com/ja-jp/idea/whatsnew/2023-3/

これによって、PRの差分をGithubのfiles changedとかなり近い体験で確認できるようになります。
– 複数ファイルの差分をスクロールによって確認できる
– 差分とその付近の行のみ表示できる

■ Githubとの比較
| Github | AndroidStudio |
| :—: | :—: |
|![スクリーンショット 2024-04-13 22.39.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3762653/13165d76-d179-e46f-07a9-dd7e445fb7e5.png)|![スクリーンショット 2024-04-13 22.39.42.png](https://qiita-image-store.s3.ap-no

元記事を表示

Android 15で日本語フォントが大幅改善

## Android 15のパブリックベータ版が公開
2024年のGoogle I/Oで発表となる次期Android 15(Vanilla Ice Cream、バニラアイスクリーム)。そのパブリックベータ版が米国時間4月11日に公開されました。
順調に開発が進めば9月頃に正式版が公開される見通しですが、今回公開されたパブリックベータ版を見ると、今まで貧弱といわれていたAndroidの日本語フォントが、Android 15では大幅に改善しそうなことが判明しました。
本記事では、従来のAndroidと何が違うのかを解説したいと思います。

## Android 15の新機能のおさらい
[Googleのホームページ](https://developer.android.com/about/versions/15/summary?hl=ja)に新機能についてまとめられていますが、一部を抜粋します。

### [細かな改行コントロール](https://developer.android.com/about/versions/15/features?hl=ja#line-breaks)
Text

元記事を表示

Arduinoとスマホでお家をモニタPart2.5【Bletooth選択動作の作成】

# 初めに
[前回](https://qiita.com/Antareskkudo/items/e102d5c4aebff21766ea)はArduinoとBluetooth送受信機(以下、BLEデバイスとする)の接続、受信した情報をデコードするところまでやりました。今回は前回の課題に挙がっていた**BLEデバイスをコードでしか変更できない問題**について解決していこうと思います。[^1]

本記事で説明する内容の範囲は以下の通りです。
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1100334/38f77b59-4631-3900-4278-4ee7ca5f6caa.png)

# アプリ動作順序について
コードの説明の前に前提条件を理解しておきます。
前回ではアプリ起動時にプログラムされたBLEデバイスに接続する操作をしていました。今回はそのアクセス前にBLEを選択する動作を加えます。

Androidのアクティビティ実行動作順序(ライフサイクルイベント)は下のように規定されています。

元記事を表示

Was Sollten Sie Bei der Wahl Eines Goldarmbands für Männer Beachten?

Die Auswahl von Accessoires für Männer ist sehr wichtig, und Goldarmbänder für Männer erfreuen sich in den letzten Jahren großer Beliebtheit bei Männern. Beim Kauf eines Goldarmreifs sind jedoch einige wichtige Faktoren zu beachten.

Zunächst einmal ist die Qualität des Armbandes sehr wichtig. Ein hochwertiges Goldarmband hält lange und rundet Ihre Eleganz ab. Auch die Qualität des im Armband verwendeten Goldes ist sehr wichtig. 24 Karat Gold ist das hochwertigste Gold, es können jedoch auch and

元記事を表示

アプリ個人開発でもまず設計しないとダメ

エンジニア歴3年でアプリの個人開発をしたいと思いました。
最初はyoutubeを見ながら似たようなアプリを作る練習をして、
全部自分で作成できるようになったので設計すっ飛ばして、そのときその時の思いつきで機能を追加したり直したりしてアプリを作っていました。

結果、エラーが起きた時に対応する時間も半端なければ、
設計していないので、本来さくさく作成できるはずのUI作成も思いつきで追加、削除の連続で時間がかかり、
おまけに不要な機能がてんこ盛りのガラクタが出来上がっていた・・・

という結果になりました。

自分がコーダー兼デザイナーであっても、考えていることを紙に書き出して、
どの作業をどの程度やればどのくらいの時間でできるか、ということを把握してないと、

とんでもなく時間かかって、
不要な機能いっぱいのガラクタが目の前にあって、

あれ、自分何でこんな時間使ってた?

とすごい後悔に襲われるので、開発を行う際は

UI周り、フローチャート、DB設計など、適度に細かく計画しておきましょう。

ということが3年目にして今更身にしみました。というお話です。

以下に最近作成中のアプリ

元記事を表示

【備忘録】UnityのAndroidビルドでAPI level 33にしてエラーが出た時はこれをやってみろ!

## はじめに
Google様の「今度からTargetAPILevelを〇〇以上にしてね。古いの使ってたらアプリリリースさせないから」に対応する際、役に立つかもしれない情報を書き留めておく。

## 環境
OS: macOS Ventura 13.0
CPU: M1
Unity: 2021.3.0f1 (2020.3.41f1でも確認済み)

## やったこと
– ProjectSettings > Player > Other Settings for Android にある「Target API level」を 33 に変更
![スクリーンショット 2024-01-19 1.41.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3679129/b13f758a-9e79-aaf6-c87d-edc5d3399525.png)
– /Applications/Unity/Hub/Editor/2021.3.0f1/PlaybackEngines/AndroidPlayer/SDK/platform

元記事を表示

【Android/Java】OkHTTPでDigest認証

## やりたいこと
AndroidアプリからDigest認証で通信したい
OkHTTPを使用することとしたらSingletonで作らないと、メモリを食いまくるようなので、それを意識する

## Step1.実装方法
#### app¥build.gradle
~~~gradle
android {
:(略)
}
dependencies {
:(略)
implementation ‘com.squareup.okhttp3:okhttp:4.11.0’
implementation ‘io.github.rburgst:okhttp-digest:3.1.0’
}
~~~~

#### AndroidManifest.xml
~~~xml

元記事を表示

【Android/Java】Bluetoothペアリング機器の削除(任意のもの以外)

## やりたいこと
製品に付随しているBluetooth機器(例えば、AndroidTVに付随しているBluetoothリモコン)以外のペアリング機器を削除したい。
ネットカフェのPCなど、不特定多数の使用が想定される状況で、利用者がペアリングした機器を、利用終了後に削除したいのが目的での調査メモ

## Step1.実装方法
#### AndroidManifest.xml
~~~xml



【Android/Java】アプリ間データ共有 その2(Android11)

## やりたいこと
アプリ間でデータの共有を行いたい
片方のアプリがプロセスKillされている状態でもデータの参照を行えるようにしたい

以前、非推奨のSharedUserIDを使って実現したが、推奨、かつ簡単に行える実装(SystemProperties)をみつけたので備忘録

## Step1.SystemPropertiesとは
Androidのデバイス動作や設定を制御するキーと値のペアが格納されているもの。
#### ADBコマンド例
~~~cmd
# デバイスのモデル名をシステムプロパティから取得する
adb shell getprop ro.product.model
~~~~

## Step2.実装方法
### SystemPropertiesへの書き込み
任意のキーを指定して、値を書き込む
~~~java
public void writeSystemProperties(String key, String val) {
try {
@SuppressLint(“PrivateApi”)
Class SystemProp

元記事を表示

[Android] BottomNavigationViewをスクロール時に隠す

![](https://velog.velcdn.com/images/rmsxo5678/post/de7304fe-26e4-410e-8206-9e2a671b16b5/image.gif)

# *layout_behavior*
画面をスクロールするとBottomNavigationViewを消して現れることの実装が必要だったが、検索してみるとxml上でも簡単にできると言っているので

“`xml
[Android]GithubActionsでリリースビルドapkをセキュアに作成する

## はじめに
Androidでリリースビルド(署名付き)をGithubActionsでapkを作成する方法を備忘録メモします。
今回は限定公開でアップしたいためapkの作成とします。
https://support.google.com/a/answer/2494992?hl=ja
※aabでもアップできるかもしれない。ドキュメントに記載がないので不明。

やり方は下記のサイトのものを使い手順通りに行います。
https://github.com/r0adkll/sign-android-release
※apk、aabファイルどちらも可能

## セキュアに
keystoreファイル(jks)をリポジトリに入れた状態(コミット)はセキュアではない(privateであればさほど問題ではないが)ので、jksはリポジトリに入れず、解決する対応とします。

## 対応方法

#### 1.jksを作成する
AndroidStudioでツールバーの「Build > Generate Signed Bundle or APK」から作成可能です。

それぞれpasswordやaliasを埋めて終

元記事を表示

Android13以降で L2TP/IPsec VPNに接続する方法

# はじめに
この記事では Android13以降で **L2TP/IPsec** 方式のVPNを簡単に接続する方法をご紹介します。
みなさんも Androidデバイス のVPN設定にて、**「あれ、L2TP/IPsec はどこ?」** と
困った経験があると思います。
その理由は Android12 で 該当プロファイルを追加できなくなり、Android13以降でその使用を規制されたためです。
おそらくセキュリティポリシーの更新によって Android がより安全な VPNプロトコルへの移行を推奨しているからです。
しかし、**L2TP/IPsec** で接続したいときがあるのも実情…
ネットにある情報は特定の条件を前提とした煩雑な内容が多いため、ここではより簡単な方法をご紹介していきます。

今回はWindows経由でVPNに接続する方法を解説します。
要するに Windows PC をホットスポットにします。

# 前準備
+ インターネットに接続された Windows PC を用意します
:::note info
共有方法が Wi-Fi である場合、インターネットを有線接

元記事を表示

#320 2024-03-31 駄菓子 議事録

## [Retaining beyond ViewModels](https://chrisbanes.me/posts/retaining-beyond-viewmodels/)

– Circuitというライブラリ
– Slackが出している
– いわゆるMVIみたいなやつ?React Hooksみたいな感じ?
– ViewModelという概念を使わない
– CircuitInjectアノテーションを使っていい感じにするとStateをComposableとして扱うことができる
– イベント更新する時はforegroundじゃないとダメなのでrepeatOnLifecycleを使わないとダメ
– けどめんどくさいけどcircuitを使えばその周辺の問題(ライフサイクルとか)を考慮しないで済む
– rememberRetainedでプレゼンターのライフサイクルを超えてstateを保持できるよ
– マーシャル??:rememberSavableを用意しないといけない時にSaverとかいうrememberSavableに即した

元記事を表示

Gradleリポジトリの検索条件を設定して、ビルドを効率化

Android Studioで新規プロジェクトを作成した場合に、setting.gradle.ktsのpluginManagementが以下のように作成されるようになっています。

“`setting.gradle.kts
pluginManagement {
repositories {
google {
content {
includeGroupByRegex(“com\\.android.*”)
includeGroupByRegex(“com\\.google.*”)
includeGroupByRegex(“androidx.*”)
}
}
mavenCentral()
gradlePluginPortal()
}
}
“`

Gradleでは複数のリポジトリが記述されている場合、先頭から順にリクエストし、エラーとなった場合は次のリポジトリにリクエス

元記事を表示

mockkでテストを書くときにこれさえ押さえとけばある程度かける

# 初めに
今回はAndroidのテストコードで使うMockkでテストを書くときにこれ知ってればとりあえず読み書きできるよっていうものを紹介していきます
### 本文
`@Before`

これは単純にRespositoryやUseCaseなどの初期化をする部分
“`kotlin
@Before
fun hoge() {
fuga: FugaRepositoy = mockk(relaxed = true)
}
“`

`@Test`

これがある部分はメイン部分でテストをしたい内容が書いてあります

coEvery

coroutine scopeが必要なAPIなどから受け取るデータを作成できます
こうすることで持ってるデータによってしてほしい挙動をしてるかどうかを確認することができます

coVerify

coroutine scopeを使ってる部分のデータが正しいかを確認するためにあります

### 最後に
すごく簡略化して書いているので実際に触ってみてもらうのがいいと思いますが、まだ触ったことのない方がコードと並列して読むと理解しやすいと思

元記事を表示

AndroidStudioのプラグインを使用して要素入力済みのデータを作成する

AndroidStudioのプラグインを使用する事があまりなかったのですが、便利な機能があるので最近調べています。

Jetpack ComposeのPreView表示用やユニットテスト実装にデータをを設定したりすることが多いので便利だと思いました。

# 要素を入力方法

プラグインの入れ方はこちらを参考にしてください。

https://qiita.com/yuta317/items/4599276d5b2e58250364

こちらを使用します

https://plugins.jetbrains.com/plugin/10942-kotlin-fill-class

![スクリーンショット 2024-04-07 20.59.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274615/343a086f-d1b8-7e2a-bc54-a83c629634f6.png)

こちらをインストールいたします。

# 使用方法

まずは作成したいデータの変数定義をします。
`val user = Us

元記事を表示

Androidの面白そうなライブラリ5選

# はじめに
今まで勉強してきて「面白そう」「いつか触ってみたい」「そのうち役に立つかも」と思った内容でも、タイミングが悪かったり、しっかりと時間をとって理解する、使ってみる段階までいかなかったりすると、ウィンドウに残したまま長く放置してしまいがちです。
そのせいで PCにどんどん負荷がかかってしまうので整理も兼ねてメモがわりに記事にしようと思います。

# スポットライト

https://github.com/TakuSemba/Spotlight

参考記事

https://qiita.com/Mosea/items/ae1589b64b21c33fa8bd

# 縦書き

https://github.com/taizan/vjap

参考記事

# 折りたたみレイアウト

https://github.com/alexvasilkov/FoldableLayout

参考記事

https://learn.microsoft.com/ja-

元記事を表示

OTHERカテゴリの最新記事