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

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

クラッシュリティクスをSlack通知する(10分で設定できるヨ)

# はじめに

毎朝毎朝、手作業でクラッシュリティクスを確認している明田です。
確認してはクラッシュが出ていない。
クラッシュが出ていない
クラッシュが…..

み、見つけた!クラッシュだ!!と本来喜んではいけないのに高ぶる気持ちを抑えられません。
まるで事件現場を発見したどっかの少年探偵団みたいな気持ちです。
![コナン.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1967088/37ca6674-df89-2804-d3db-3f7ce6560b77.jpeg)
そこから犯人(原因)探しをし修正してクラッシュ解決となるのですが、なんといっても
– 手作業での確認作業が面倒
– 発見して課題化したのに誰かが解決済み
– これは連携ミス。
– 確認が属人化してしまっている
– 運用しているサービスが多いと確認数が増える

など確認作業には多くデメリットが存在します。

くそー何か何かいい方法は…
ざわ…何かいい方法はないのか。
ざわ…:bulb:!!
圧倒的閃き・・・!僥倖

元記事を表示

【初心者向け】Flutter, SolidityでDappsを作る方法 (Metamaskとも連携)

今回の記事では、Solidity & Flutterを使って、Dappsを作る方法を解説します。

アプリの内容としては、「アプリ→メタマスクに接続→口座にトークンを発行する」というFaucetアプリを作るというものになっています。
画像ではこんな感じ。
Cannot run program “git”: error=2, No such file or directory というエラーを解消した方法

今回はAndroidStudioで プロジェクトをビルドした際ビルドエラーになったものを解消した方法を記事にします。
色々検索をかけた内容では この方法が出てこなかったため、今後のためにも記事に残しておきたいと思います。
もしこの記事を参考にする人は、他の方法を試してからでもいいかもしれません。

# 解決方法
AndroidStudio上方のメニューの中から **Tools**→**SDK manager**→**Android SDK**→**SDK platforms**と進みプロジェクトに必要なSDK インストールします

![スクリーンショット 2023-02-03 18.23.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2394054/d5df5195-390f-8bec-b6ec-8fa9cdf3fb51.png)

![スクリーンショット 2023-02-03 18.23.44.png](https://qiita-image-store.s3.ap-northeast

元記事を表示

【Unity】NRealで録画しようとすると「Permission Deny」と出る

# はじめに
こんにちは、ユーゴです。今回は、NRealの開発をしていたときに起きた問題を紹介します。
ゲームのデモ動画を撮ろうとした時、「VideoCaptureExample」を導入したまでは良いが、録画しようとすると「Permission Deny」と出てエラーが出ました。小一時間調べましたが解決策は出ず、自力でAndroidのPermission(権限)の設定を調べて直しました。

# 環境
Unity 2021.3.4f1
NReal Light (dev kit)

# 問題
NRealで録画しようとすると「Permission Deny」と出る。

# 解決
AndroidManifest.xmlに権限を記述します。

(1) UnityのProjectウィンドウの「Assets > Plugins > Android > AndroidManifest.xml」を探して開きます。なければこの通りのディレクトリとファイルを作成します。
(2) AndroidManifest.xmlの中はたぶん以下のようになっていると思います。

“`xml:AndroidManifes

元記事を表示

AndroidでバックグラウンドでAWS IoTメッセージを待ち受ける

以前の投稿で、Androidにおいて、UDPメッセージを待ち受けるバックグラウンドサービスを作成しました。([AndroidでバックグラウンドでUDP受信を待ち受ける](https://qiita.com/poruruba/items/01731d425b6e658fc56f))
今回は、AWS IoTすなわちMQTTのメッセージを待ち受けるバックグラウンドサービスを作成します。
それだけだと面白くないので、独立でサービスを起動し、AIDLを使って別のAndroidアプリケーションからサービスを操作し、メッセージを送受信できるようにします。
以下に構成をまとめます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/261826/60de546a-7aa6-47d7-02a9-e8d0128223e1.png)

バックグラウンドサービスを独立に立ち上げるので、同じAndroid内の複数のアプリケーションで共用できます。
また、AWS IoT CoreをMQTTブローカとして使うので、他の

元記事を表示

Android Studioで出力されるAPKに任意の名前をつける

Android Studioのビルド時に”app-release.apk”から毎回リネームするのが面倒なので、デフォルトで名前をつけたい。
ここでは、リリース時は”MyAndroidApp-v1.x.x-20230204-131212.apk”という名前をつけるようにする。デバッグ時はもとの”app-debug.apk”にする(なにもしない)。

### 開発環境
Android Studio Dolphin | 2021.3.1 Patch 1
Gradle version 7.3.3

### 変更箇所

“`gradle:(project)/app/build.gradle

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(‘proguard-android-optimize.txt’), ‘proguard-rules.pro’
}
// ここから追加

元記事を表示

アリババ クラウド: 企業は 2023 年に AI とブロックチェーンにクラウドを活用する

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3121454/c2029d74-9285-d8ca-8c8b-f85fc5cc7088.png)

アリババ クラウドは、特に 2023 年の顧客のデジタル化をサポートするために、国内のさまざまなセクターでデジタル変革をサポートするというコミットメントを繰り返しました。

eunoiamedia の情報源によると、Alibaba Cloud Intelligence Indonesia のカントリー マネージャーである Leon Chen 氏も、インドネシアのすべてのビジネス セクターに対するこのコミットメントを強調しました。 2016 年からインドネシア市場にサービスを提供しており、インドネシアで 6 年間、アリババ クラウド パートナーのデジタル エコシステムを開発するためにより多くのリソースを投資することを約束してきました。

また、Alibaba Cl

元記事を表示

DroidKaigi2022のRobotTestRuleを紐解いてみた

# はじめに

Androidでのインテグレーションテストを行う際に役立つテストルールを作成したくて、DroidKaigi2022のリポジトリにある`RobotTestRule`を眺めていました。

“`kotlin
class RobotTestRule(
private val testInstance: Any
) : TestRule {

val composeTestRule = createAndroidComposeRule()
override fun apply(base: Statement?, description: Description?): Statement {
return RuleChain
.outerRule(HiltAndroidAutoInjectRule(testInstance))
.around(composeTestRule)
.apply(base, description)

元記事を表示

ContentProviderを使って別のアプリ間でデータをやりとりする

データを提供する側のアプリ: ContentProviderを実装
データを読み取る側のアプリ: ContentResolverのAPIを呼び出す

## データを提供する側

“`xml


【Flutter】AndroidでiOS風の画面遷移とスワイプによるバックを実現する

# はじめに
Flutterはクロスプラットフォームなフレームワークですが、Flutterでモバイルアプリを開発していて、Android・iOSという二つのOSで画面遷移時の処理を統一するのに少し工夫が必要だったため共有します。
本記事ではAndroidにおいてiOS風の画面がスライドするようなトランジションエフェクトと、スワイプによる画面バック処理の実装について紹介します。
Androidバックキー押下時に何か処理を実装していた場合、そのままではスワイプによる画面バック動作が無効になってしまうので、その解決を試みました。

# 目標
AndroidでiOS風のトランジションと「スワイプで前の画面に戻る」動作を共通で実装させる。

# 実装

実装の内容は大まかに以下となります。

1\. AndroidでiOS風の画面遷移をさせる
2\. バックキーに処理を設定する
3\. バックキー押下時の処理とスワイプによるバック動作を併存させる

## 1\.AndroidでiOS風の画面遷移をさせる

Flutterのコードを読むと、以下のようにOSによって異なる画面遷

元記事を表示

Dagger Hiltで使えるアノテーションメモ

# 初めに
今回は個人的に覚えておいた方がいいDagger Hiltのアノテーションを紹介していこうと思います
### 本文
Binds

@Bindsはインターフェイスのインスタンスを提供するときにどのImplを使用するかを知らせる

Provides

@Providesはメソッド内でインスタンスを生成して注入

Qualifierch

@Qualifierh同じ型に複数種類のバインディングを提供するためのもの(枝分かれみたいに使える)

Named

@Namedは名前をつけるため
### 最後に
今回は備忘録程度に自分がHiltのアノテーションで勉強したことをまとめてみました
誰かのお役に立てれば幸いです

元記事を表示

【Expo】ImagePickerで画像を複数枚選択する方法

# はじめに
個人開発中にImagePickerを「Expo ImagePicker 複数枚選択」とググっても「ImagePickerでは複数枚選択できない」とか「MediaLibraryでできる」という記事しかでてこないので記事を書くことにしました。

記事の最後にExpoで個人開発したアプリを紹介しているのでもしよければダウンロードお願いいたします!!?

# 前提
* SDK45以上
* expo-image-pickerインストール済み

# 結論
下記のようにするだけでした。
“`react
import * as ImagePicker from “expo-image-picker”;
~~
~~
const result = await ImagePicker.launchImageLibraryAsync({
mediaTypes: ImagePicker.MediaTypeOptions.Images,
allowsMultipleSelection: true, // これをtrueに設定する
quality: 1,
});
“`
これだけでした。

元記事を表示

targetSdkVersion 33 対応でやったこと

# 概要

[Android Studio を Electric Eel にアップデートしたときにやったこと – Qiita](https://qiita.com/koichi-ozaki/items/79d5cba03eaa3eb14f85)

こちらの対応を行うときに `targetSdkVersion 33` へ上げたので対応した内容を記載する。

# やったこと

– compileSdkVersion 更新

“`diff_gradle:app/build.gradle
– compileSdkVersion 31
+ compileSdkVersion 33
“`

– targetSdkVersion 更新

“`diff_gradle:app/build.gradle
– targetSdkVersion 31
+ targetSdkVersion 33
“`

– plugin の書き方変更(変更する必要なかったかも)

“`diff_gradle:app/build.gradle
-apply plugin: ‘co

元記事を表示

ARサンプルアプリ

https://github.com/iwata-koji/AR_Sample

元記事を表示

AndroidのOutOfMemoryErrorと出会ったときに試したこと

メモです

Android7.X系の高齢者向けスマホで ``で生成したAnimatableなDrawableResourceをImageViewに設定しようとしたときに出会いました。
setImageResource()が極端に重くなります。
特定の画像だけが極端に重い(といっても通常の端末なら耐えうる)といったケースでした。
`android:largeHeap=”true”` は元々指定されていました。

# 試したこと1 画像を解放して続行

catchして握り潰す
OutOfMemoryErrorはExceptionを継承したクラスではないのでExceptionでまとめてcatchしようとしてもできない

“`kotlin
try {
imageView.setImageResource(animatable)
} catch(e: OutOfMemoryError) {
imageView.setImageDrawable(null)
return
}
“`
重い画像を解放してやって続行。アニメーションは表示させない

元記事を表示

【Flutter】AndroidのAPKビルドがgradleやAndroid 12のエラーがでて出来ない問題の解決策

Android StadioでFlutterのAndroidアプリビルドがうまくいかなかった問題を有志の記事などを参考にしたところ解決することが出来ましたので、やり方を紹介したいと思います。

### エラー1
What went wrong:
Execution failed for task ‘:app:lintVitalRelease’.
> Could not resolve all artifacts for configuration ‘:flutter_local_notifications:debugUnitTestRuntimeClasspath’.
> Failed to transform bcprov-jdk15on-1.68.jar (org.bouncycastle:bcprov-jdk15on:1.68) to match attributes {artifactType=processed-jar, org.gradle.category=library, org.gradle.libraryelements=ja

元記事を表示

寝坊で信頼を失う前に……400円で買える保険

# はじめに
:::note warn
この記事は寝坊を防ぐ対策について言及するものではありません。
:::

寝坊をする理由は様々で、目覚ましのかけ忘れ・夜更かし・不眠・体調不良・二度寝・飲酒等等……
生活習慣の改善で解消できるものもありますが、どうしても意識がない睡眠状態では
100%しないと言い切れるものでもありません。

そのくせ社会人としての評価に寝坊は大打撃を与えます。
※自分が所属しているSES会社では客先評価と勤怠の比重が50:50程です。

体調不良で遅刻するという連絡さえできればそこまで大きなマイナス評価にはならないのですが、
寝坊のどうしようもなさは、連絡ができないところにあります。

そこで、設定した時刻までにスマートフォンを操作しなかった場合に、勤怠メールを送信する仕組みを考えました。
以下はAndroidアプリとなるため、ご了承ください。

**用意するもの**
・[Tasker](https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm&hl=ja&gl=US)

元記事を表示

DroidKaigi 2022のsettings.gradle.ktsを読んでみて、わからなかったことのメモ

# はじめに

DroidKaigi 2022のリポジトリの**settings.gradle.kts**を読んでいました。

https://github.com/DroidKaigi/conference-app-2022/blob/main/settings.gradle.kts

普段シングルプロジェクトで開発を行なっている場合には出会わないようなブロックやメソッドが散りばめられていて、gradle初心者にはかなりの圧迫感がありました。

そこで、自分のメモとして**settings.gradle.kts**に登場する各ブロックやメソッドの意味などをまとめてみました。

参考程度にお読みいただけたら幸いです。

# build.gradleとは

**build.gradle**にはビルドの内容がGroovy言語によって記述されています。
ビルドの内容とは、依存関係や依存関係の解決に使われるMavenなどのリポジトリのことを指します。

# settings.gradleとは

**settings.gradle**は、Gradleによって自動的に生成されるファイルです。
この

元記事を表示

Flutter M1 Mac环境配置

# はじめに

– Flutter 公式からも環境設定の説明を用意していますが、実際に着手してみると、初めてなので色々トラブルが発生しました。
– 本記事では 、私が踏んだ落穴を経験として、M1 Macbook をターゲットに導入中の注意点と導入順番を改善しました。
– M1 Macbook であれば、公式より本記事の方が詳しくてわかりやすいと思っています。

# Rosetta 2(SUDO命令)

– Apple Silicon Mac に Flutter を 導入する場合 Rosetta(ロゼッタ)が必要です。
ターミナルを開き、下記のコマンドで Rosetta 2 を導入します。

> Rosetta(ロゼッタ)とは ?
>
> Rosetta(ロゼッタ)は、特定のアーキテクチャのプログラムコードを持つバイナリを、別のアーキテクチャに適宜変換 (en:Dynamic recompilation) することでバイナリの互換性を維持する Apple の技術。

“`
sudo softwareupdate –install-rosetta –agree-to-licens

元記事を表示

AndroidのWebViewで、画面回転した後にフォーカスを当ててもソフトウェアキーボードが表示されない不具合に対する回避策

# 要件
Androidで以下のような要件がありました。

– WebView画面
– 縦画面でコメントが入力できる
– WebChromeClientから受け取ったView(動画)を全画面(横画面)で表示する

# 不具合
この時特定の端末で
「画面回転をした後に、WebView内の入力欄にフォーカスを当てても、ソフトウェアキーボードが表示されない」
という症状がありました。

# 再現手順
– 該当の画面に遷移する
– WebView内の動画を最大化して、横画面で表示する
– 縦画面に戻す
– WebView内のテキスト入力欄にフォーカスしても、ソフトウェアキーボードが表示されない

# 修正方法
回避策として、以下の実装を行いました。
“`kotlin WebViewActivity.kt
override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
webView.clearFocus()
webView.r

元記事を表示

OTHERカテゴリの最新記事