Android関連のことを調べてみた2020年11月16日

Android関連のことを調べてみた2020年11月16日
目次

Unity Device Simulator のインストール方法

##背景
Device Simulatorのインストール方法が変わったようなので、忘却録として。。。

##開発環境
PC:macOS Catalina
Unity:2020.1.10f1

##内容
「Unity Device Simulator インストール」で検索すると、
同じような検索結果が出てくる。
メニューのwindowからPackage ManagerをクリックするとPackage Managerのダイアログが表示される。
ダイアログのAdvancedからshow preview pakagesにチェックを入れて、Device Simulatorで検索すれば見つかる、、、が肝心のAdvancedがない。

調べてみると、Unity 2020.1以降からインストール方法が変わったらしい。(参考のUnity 日本語ヘルプデスクに書いてあります)

書いてある通りにやれば、無事インストールでき、GameタブにGameとSimulatorを選択できるようになる。
Safe Areaを表示したり、回転することもできる。

![スクリーンショット 2020-11-16 2.17.5

元記事を表示

Google Playに公開していたアプリが削除された話と復旧させた話

# 概要

先日、Google Playに公開していたアプリ2件が突然Googleに削除されてしまったのですが、申請して復活してもらったので、その内容について書きます。

# 対象アプリ

今回、自分がGoogle Playに公開している2件のアプリが同時に削除されました。そのアプリは次の2件になります。

* [Medoly Last\.fm Plugin \- Google Play のアプリ](https://play.google.com/store/apps/details?id=com.wa2c.android.medoly.plugin.action.lastfm)
* [Medoly Twitter Plugin \- Google Play のアプリ](https://play.google.com/store/apps/details?id=com.wa2c.android.medoly.plugin.action.tweet)

本アプリは通常のアプリではなく、[Medoly](https://play.google.com/store/apps/details?

元記事を表示

SharedFlow、StateFlow、Channelなどを比較して、LiveDataやEvent通知の置き換えを考える

(ちょっと早いですが、時間が取れなかった場合、これをアドベントカレンダーのネタにするかもです)

**このパターンでこれだとうまく動かない、こういう方法があるなど、何か指摘などあればぜひ教えて下さい。**

どうやら、これからはStateFlowやSharedFlowの時代のようです。

**新しいコードで意図的にLiveDataを選択する理由はありません。**ということが書かれていました。

Twitterなどで話題になっていました。


([Kotlin LangのSlackより](https://surveys.jetbrains.com/s3/kotlin-slack-sign-up?_ga=2.245584068.1977335104.1605440259-1889264912.1528977480))

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273

元記事を表示

【Android】adb shell でエミュレーターの SQLite にアクセスする方法

## はじめに

Android 開発で SQLite の中身を確認したいとき、データをローカルに持ってきて DB Browser for SQLite を使う方法もありますが、何度も確認したいときにこれをやるのは少々手間になります。

CLI で DB の中身をササッと確認する方法を調べたのでメモしておきたいと思います。

## 1. エミュレーターの起動

起動させるエミュレーターは Google Play が実装されていないものを選びます。

市販の端末や Google Play が実装されているエミュレーターを使用すると、権限の問題で sqlite3 コマンドが実行できません。

Google Play が実装されているエミュレーターに `adb shell` で入り、`sqlite3` コマンドを叩いても `not found` となります。

“`
$ sqlite3
$ /system/bin/sh: sqlite3: not found
“`

Play Store にマークがついていないエミュレーターを選択してください(私はここでハマりました…)。

![スク

元記事を表示

【Android】GooglePlayのアプリを更新しようとしたらkeystoreのパスワードを忘れていた件

半年以上ぶりでアプリを更新しようとしたら、keystoreのパスワードを完全に忘れていました。

検索すると、下記ページを発見!
【Android】Androidアプリ開発でkeystoreのパスワードをど忘れした場合

【Android】Androidアプリ開発でkeystoreのパスワードをど忘れした場合

そこを読むと、パスワードを忘れた時に使えるGoogle提供のツールがあるらしい!
Android_Keystore_Password_Recover_1.07.jarをダウンロード
https://code.google.com/archive/p/android-keystore-password-recover/

コマンドプロンプトでパスを叩くも、「内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。」と出る

javaが入ってないらしいので「jdk-15.0.1_windows-x64_bin.exe」をインストール

超久々にコマンドプロンプトを使ってみる、使ったコマンドは下記。
cd C:\test
java -jar Android_K

元記事を表示

【ゲームアプリとベジェ曲線:その③(完結)】パーツによる絵のバリエーション

## はじめに

このシリーズでは **iOS**/**Android** ゲームアプリの描画手法として、ベジェ曲線の可能性を模索します。
第三回目は、素材をパーツ単位で作成することで、手軽に絵のバリエーションを増やす手法について探っていきます。

サンプルアプリのプロジェクトは **GitHub** にあります。
[**https://github.com/hakumai-iida/BezierSample**](https://github.com/hakumai-iida/BezierSample)
[![title_3rd](https://user-images.githubusercontent.com/13220051/99179158-25d42000-275e-11eb-8372-94f13bdd8681.png)](https://github.com/hakumai-iida/BezierSample)
前回:【[**その②:ストローク(線)による表現の付け足し**](https://qiita.com/hakumai-iida/items/fb688ed3df5

元記事を表示

POSTパラメータで安易に@Query使ったら泥沼にハマった

## はじめに
読んだ書籍をリスト管理するアプリを作成するべく、書籍追加のAPI実装をしておりましたが
どんな画像を選択しても画像取得エラーとなり追加できませんでした。
ようやく泥沼から抜け出せたので備忘録として記録しておきます。
追加

## 原因
“`xml:Log
Response{protocol=http/1.1, code=414, message=Request-URI Too Large
“`
どうやらURIが長すぎるよう。でも何でそんな長くなるの?
原因はリクエストでデータを送信する方法に問題があった。

“`java:ApiInterface.java
public interface ApiInterface {
@Headers(HEADERS)
@POST(“/books”)

元記事を表示

簡単なレコーダーアプリを作る【Android/Kotlin】

レコーダーアプリを作ってみました。
録音機能だけみたいときはバックエンドの章だけみていただきたいです。

#環境
macOS Big Sur version 11.0.1
Android Studio 4.1.1
kotlin 1.4.10
実機: Pixel 4a (5G)

##参考文献:
・[MediaRecorder の概要](https://developer.android.com/guide/topics/media/mediarecorder?hl=ja)

#レコーダーアプリ

##権限の追加
録音機能を使うには、まず、アプリのマニフェストファイルに権限を追加する必要があるらしいです。

公式によると、
>RECORD_AUDIO はユーザーのプライバシーを危険にさらすおそれがあるため、「危険な」権限とみなされます。Android 6.0(API レベル 23)以降、危険な権限を使用するアプリでは、ランタイムにユーザーの承認を求める必要があります。

とのことなので追加してあげましょう。

“`xml:AndroidManifest.xml

元記事を表示

【Android】MVVMで、Retrofit2 + Kotlin CoroutinesでHttp通信でqiitaの記事検索するやつ作った

# 【Android】MVVMで、Retrofit + Kotlin CoroutinesでHttp通信をやってみた

## 概要
MVVMの勉強のため、Retrofit2とKotlin Coroutinesを使って、Http通信をして、qiitaの記事を検索するアプリを作成しました。

## ゴール
MVVMでのHttp通信の実装に少しでも参考になればと思います。

## 実装する機能 
Qiita APIを使って、記事一覧を取得する。
文字を入力していくと検索する

## 今回作ってみたもの
![画像サイズ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/315689/b825aa6a-2dc6-f5e6-10a3-15d465c740a7.png)

## 使用するライブラリ
* AAC
* LiveData
* AndroidViewModel

* Retrofit2
* Retrofitは、ver2.6以降でcoroutinesに対応したので、2.6以降を使用するように注意して

元記事を表示

[Android]Material Designを導入したときに初めにつまづいたこと

AndroidにMaterial Designを導入したときに、何度もつまづいたので、メモ。

## 初めての導入

build.gradleに以下を記載します。

“`
implementation ‘com.google.android.material:material:1.3.0-alpha03’
“`

Gradle Syncした後にMaterial Buttonを使ってみます。

“`

“`

## 実行、そしてクラッシュ

このボタンがあるActivityを起動すると、以下のエラーで落ちました。

“`
Error inflating class com.google.android.material.button.MaterialButton
“`

## 解決方法

`res/values/styles.xml` をMateri

元記事を表示

【Android / Java】DataBinding について学んだ

# はじめに
開発案件でDataBindingを使っており、学習したことを記事にする。

今回はDataBindingを使って、データクラスオブジェクトのプロパティの変更を監視してView表示に反映させるまでを学習した。

# 今回作成した学習用アプリ
①と②のテキスト表示を「チェンジ」ボタンを押す毎に動的に行ったりきたり切り替えるというもの
「ドラえもん」⇄「のびた」

①|
—|
|

②|
—|
|

# 実装ファイル
– “build.gradle

元記事を表示

Navigation ComposeでActivityへ遷移させる

Navigation Compose で Activity への遷移をするにはどうすればいいのか調べたのでそれについて書いていこうと思います。
Navigation Compose については[以前記事を書いた](https://qiita.com/Nabe1216/items/f329e981f0da76c1d221)のでそちらをみてください。

⚠️ここでの Navigation Compose のバージョンは 1.0.0-alpha02 を使用しているので、Stable になるまでに破壊的な変更が入る可能性もあります

## Navigation Compose に Activity の定義を追加

“`kotlin
val navController = rememberNavController()
NavHost(navController = navController, startDestination = “home”) {
composable(route = “home”) {
HomeScreen(…)
}
comp

元記事を表示

使用したクーポンコードを指定したエンドポイントにポストバックする

広告の成果計測等のために、使用されたクーポンコード等の情報を含めて計測システムのエンドポイントへポストバックする必要がある際の成果通知の仕方です。

今回はHttpURLConnectionを利用しました。

# security configの設定とmanifestの設定
設定するポストバック先のURLがhttps://〜であればこの設定は不要です。
Android 9(Pie)では暗号化されていない通信はできない、つまりhttp://ではじまるURLへの通信はデフォルトでは不可能です。
※設定するURLがhttps://で始まればこの手順は必要ありません。
## security config設定

app/xmlディレクトリに以下のファイルを作成します。

“`network_security_config.xml



元記事を表示

[Android][iOS]Crashlytics導入メモ

# 1. Androidメモ
## build.gradle(app)への設定の注意
“`
Execution failed for task
‘:app:uploadCrashlyticsMappingFileRelease’.
> Expected file collection to contain exactly one file, however, it contains no files.
“`
とかいうエラーが出た時の原因と対処

**前提**
build.gradleで「minify true」を設定している場合、ビルド時に難読化が適用され、mapping.txtが作成される。
「minify false」の場合、ビルド時に難読化されず、mapping.txtは作成されない。

**原因と対処**
「minify false」かつ「mappingFileUploadEnabled true」を設定すると、ビルド時にmapping.txtが作成されていなくても、FirebaseSDKはmapping.txtをFirebaseにアップロードしようとして、上記のエラーが発

元記事を表示

今更Build Testable Apps for Androidを見て驚いたところメモ

# 概要
去年のIOで少し古い動画なのですが、すごくいい動画なので、見てみてください。
**特に驚いたポイントを太字にしています。**
かなり端折っているのでおかしいなって思ったら動画の方を確認してください。解釈が違いそうっていう所があればコメントか修正リクエストをください :bow:

# テストにおいて、キーとなるアトリビュートはスコープ

スコープは一つのメソッドでテストがアプリケーションのどのぐらいカバーしているのか、または複数の機能、複数の画面にまたがることはできる。
**スコープはテストの他の2つのアトリビュートに影響を与える。**
→ スピード
ミリ秒単位で終わるものもあれば何分もかかるものもある。
→ **Fidelity(忠実さ)**
テストケースのシミュレートが、どのぐらい本当の世界のシナリオに近いか。スコープを広げれば広げるほど、テストのFidelityは上がる。しかし、逆にスピードを遅くする。一つのテストではすべてにおいて一番いいものはできない。

テストのバランスを見るに

元記事を表示

YoutubePlayerSupportFragmentがandroid11でinitializeに失敗するエラー(Service Missing)の対処法

##背景
android11の端末でのみYoutubePlayerSupportFragmentを利用して動画を再生したがinitializeの時にエラー(Service Missing)を返却して再生できなくなった。
コード上でerror表示はあったがビルドは通るしandroid10までの端末では問題なく再生できたので調査を行った。

##対処法
以前投稿した[android11でTextToSpeechが動作しない時の対処法](https://qiita.com/iKimishima/items/466a54bedf6deb87986b)とほぼ同じ方法で動作するようになった。
マニフェストのqueriesに以下のように追加すると動作するようになります。

“`AndroidManifest.xml

  ・・・

   ・・・

元記事を表示

【Flutter】Firebase環境構築(iOS/Android)

##参考文献
– [Flutter アプリに Firebase を追加する](https://firebase.google.com/docs/flutter/setup?hl=ja)
– [cloud_firestore 0.13.6 ](https://pub.dev/packages/cloud_firestore/versions/0.13.6)
– [firebase_core 0.5.2](https://pub.dev/packages/firebase_core/install)
– [64K を超えるメソッドを使用するアプリ向けに multidex を有効化する](https://developer.android.com/studio/build/multidex)
– [【Flutter実践】Firebase環境構築と、Firestoreのデータを取得してアプリで表示](https://www.youtube.com/watch?v=IiEsyHiIwxc)

#iOS編

###1. Firebaseプロジェクト作成
[![Image from Gy

元記事を表示

ADBでよく使うコマンド一覧

## はじめに

ADBでよく使うコマンドを紹介します。

## 「ADB」とは?

「Android Debug Bridge」の略で、Android端末とやりとりするための多用途なコマンドです。
アプリのインストールやアンインストール、クラッシュログの出力など、さまざまな操作が行えます。

## 環境

– Android Studio:4.0
– adb:1.0.41

## ADBのパスを通す

ADBを使うには、Android Studioをインストールし、パスを通す必要があります。

以下の記事をご参考に行ってください。
[Android SDK Platform-Toolsのパスを通す方法 – Qiita](https://qiita.com/uhooi/items/a3dcc15f7e15ae11d1d6)

## ADBでよく使うコマンド

### グローバルオプション

|オプション|説明|
|:–|:–|
|`-s {シリアル}`|対象シリアルの端末を使う|

`-s` オプションを使うと、対象にしたい端末を確実に指定できます。
後述する `adb devic

元記事を表示

[Unity + Android + Windows] Android SDK 29を入れようとしたらsdkmanagerに怒られた

2020年11月2日からAndroidアプリのアップデートをする際に**targetSDKバージョン29以上が必須**になったらしい

# sdkmanagerでAndroid SDK 29を入れてみる

この記事を参考にAndroid SDK 29を入れようとしてみた

Unityで Android API level 29 のビルド

しかし、sdkmanagerさんに以下のエラーで怒られます

“`
C:\Program Files\Unity\Hub\Editor\2019.4.10f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\tools\bin>sdkmanager.bat “platforms;android-29”
Exception in thread “main” java.lang.NoClassDefFoundError: javax/xml/bind/annota

元記事を表示

【Android】NavigationViewを使わないで、スライドするメニューをつくる

スライドするメニューは`DialogFragment`で作成しました。
Activityの上に、DialogFragmentが被さるイメージです。

# アニメーションの作成
## 左から右へスライドするアニメーション(res/anim/slide_in.xml)

“`xml



“`

## 右から左へスライドするアニメーショ

元記事を表示

OTHERカテゴリの最新記事