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

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

Unity 2019.3 でJDK、NDK、SDKが無いエラーが出る場合の対応方法

Unity でAndroid開発、あるいはOculus開発しようとしたら、 `UnityException: JDK not found` が出ましたか?
自分は同じミスを二度ほどして学びました。

# エラー内容
“`
UnityException: JDK not found
Java Development Kit (JDK) directory is not set or invalid. Please, fix it in Preferences -> External Tools
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr) (at /Users/builduser/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:187)
“`

Preferences を見ると、JDK周りに警告が出ている。
スクリーンショット 2020-02-11 1.15.17.png今からスマホアプリの学習をしようとしてる人に向けて!

##1. はじめに
私は新卒でITベンチャーに入社して、現在スマホアプリのフロントエンドエンジニア(※以下 アプリのフロント)として、
Android、iOS共に、主にECアプリなどを開発しております。
そんな私がスマホアプリの学習をしようか検討中の方に向けて、「**アプリのフロントはこんな感じ**」というのを共有させていただければと思い記事にしました。

##2. スマホ開発の仕事はある?
学習するか悩んでる言語がある方の多くは、「その言語を学んでも仕事が無いんじゃ意味がない」と思っている方だと思います。
確かに「仕事がない」=「必要とされていない」と言っていいと思うので、これから学習する言語は仕事が多く取れる言語が良いですよね。
その点、**スマホのエンジニアは仕事がある**と私は胸を張って言えます。
これは「勤めている会社の中で仕事があるから」「自分がやっているから」というだけが理由ではありません。
私は趣味で英語の勉強会に行くのですが、その際職業の話になりアプリを作っていることを話すと、
結構な確率で「こういうサービスを考えているんだけど…」と相談されます。
今、何かサービスを

元記事を表示

Flutter MessageChannel APIの使い方

# はじめに

Flutter (Dart) とプラットフォーム (Android/iOSなど) 間の通信/呼び出しAPIについてまとめています。

* [MethodChannel](https://qiita.com/kurun_pan/items/db6c8fa94bbfb5c0c8d7)
* [EventChannel](https://qiita.com/kurun_pan/items/6d63ebf1e894d3620b20)
* MessageChannel ← 今回

## 1. MessageChannelとは

プラットフォーム (Android/iOSなど) とFlutter (Dart) 間で双方向でメッセージ送受信するためのAPIであるMessageChannel (正確には[BasicMessageChannel](https://api.flutter.dev/flutter/services/BasicMessageChannel-class.html)) です。片方からもう片方にデータを送信し、受信したらリプライを返すというごく普通のメッセージパッシン

元記事を表示

Uno Platform 入門 2 : 環境構築をしよう! Uno Platform ハローワールド

いよいよ **Uno Platform** の開発環境を整えてみましょう。 **Uno Platform** はクロスプラットフォーム開発環境なので、それぞれの環境で動くように、多少揃える必要のある環境があります。
この記事では、ちゃんとそれぞれが動くか一歩一歩動作確認しながら進めていきます。

この記事のゴール:

1. **Xamarin.Forms** ハローワールド (環境構築 && 実行)
3. **ASP.NET Core** ハローワールド (環境構築 && 実行)
2. **Uno Platform** ハローワールド (環境構築 && 実行)

参考記事:

* 前回の記事:『[Uno Platform 入門 1 : Uno Platform とは? ~ C# で iOS, Android, Web, Windows 10 アプリを一気にクロスプラットフォーム開発~](https://qiita.com/chomado/items/9a36d5e1bb41c4f6cef3)』
* (英語) 『[Using Uno – getting started / Sett

元記事を表示

UnityでMicrosoft Cognitive Speech Servicesによる音声認識をAndroidスマホで実装する

Androidスマホで動作するUnityの3Dアプリに音声認識をさせる必要が生じたので、簡単なサンプルを作るところから始めました。音声認識には「Microsoft Cognitive Speech Services」を使うことにしました。ちょっとハマったので、備忘録も兼ねて書いておきます。
#開発環境
Windows 10
Unity Ver 2019.2.17f1
Android 9.0 (Galaxy Note9)

#(1)Microsoft Cognitive Speech Servicesの準備
##Microsoft Azure の無料アカウントを作成
まず、Microsoft Azure の無料アカウントを作ります。ちょっと古いけど、この辺が参考になると思います。
「[Microsoft Azure の無料アカウントを作ってみた](
https://qiita.com/shinyay/items/a6106936b4a640ab0dc4)」

## Cognitive Servicesのプロジェクトを作る
「[Azure Cognitive ServicesのSpeech

元記事を表示

51歳から(現52)のプログラミング 備忘 Support Library API追加

#Support Library APIの追加
ネイティブのActionBarはAPIレベル21以降。Support Library の Toolbar ならAPIレベル7以降をサポートできる。

Projectのbuild.gradleファイル内にGoogle Mavenリポジトリを組み込む

“`java:
allprojects{
repositories{
google()
// もし、gradle versionが4.1以下なら、代わりに以下を使う
// maven{
// url ‘https://maven.google.com’
// }
}}
“`
次に、サポートライブラリを使用するモジュールごとに、build.gradle内のdependenciesブロックにライブラリ(v4 core-utils)を追加

“`java:build.gradle
dependencies{

implementation “com.android.support:support-core-ut

元記事を表示

[Android Studio] アプリの全画面表示についてまとめてみる(ノッチ有り無し)

# はじめに
アプリの全画面表示をしようとするとノッチの有り無しでやり方がちょっと違ったのでまとめてみます。

# 開発環境
Android Studio 3.5.3

# フルスクリーン表示の方法
これは、ノッチ有り無しに関わらず同じです
`styles.xml`にて、以下を記述します

“`xml:styles.xml

“`

次に`AndroidManifest.xml`でthemeを設定すればOKです

“`xml:

元記事を表示

Flutter EventChannel APIの使い方

# はじめに

Flutter (Dart) とプラットフォーム (Android/iOSなど) 間の通信/呼び出しAPIについてまとめています。

* [MethodChannel](https://qiita.com/kurun_pan/items/db6c8fa94bbfb5c0c8d7)
* EventChannel ← 今回
* [MessageChannel](https://qiita.com/kurun_pan/items/9c2b6fdba602203f8f83)

## 1. EventChannelとは

プラットフォーム側からFlutter (Dart) 側にイベント通知するためのAPIの一つである[EventChannel](https://api.flutter.dev/flutter/services/EventChannel/EventChannel.html)について解説します。

加速度センサーの値の変化やプラットフォーム側のイベントサイクルの変化など、プラットフォーム側で定期的もしくは突発的に発生するイベントをFlutter側に通知するためのAPI

元記事を表示

adventcalender ARCoreを触って、サンプルを作ってみる 12/11分として記載

2020/02/08 記事の構成を記載

こんにちは、コロナです。

今回は、ARの学習をしたくてARCoreのサンプルを作成しようのコーナーです。

# ARCoreって何?

UnityがAndroid向けにゲームを拡張するために用意してくれたSDKになります。
Unity側の紹介ページ
[https://unity3d\.com/jp/partners/google/arcore](https://qiita.com/drafts/398b3fe6785a146975f1/edit)

# issueこれからの課題
google側に記載されているSDKの消化をしていく
https://developers.google.com/ar/develop/unity/quickstart-android

## SDKの取り込んで成功した時のスクショ

## サンプルシーンを取り込んでの動作確認とスクショ

## プロジェクトの設定について、確認と必要であれば設定

## Android環境として実際にビルドをする

ありがとうございました

元記事を表示

android.os.HandlerのpostとpostDelayedを使った際のQueueに積まれる順番について

AndroidでHandlerの`post(Runnable r)`を複数回コールした場合は、postした順にQueueに積まれて、実行されます。`post(Runnable r)`と`postDelayed(Runnable r, long delayMillis)`を使った場合にどうQueueに積まれるか調べてみました。

ソースコードを見ると、postとpostDelayedの内部では共に`sendMessageDelayed(Message msg, long delayMillis)`が呼ばれていました。

“`java:Handler.java
public final boolean post(@NonNull Runnable r) {
return sendMessageDelayed(getPostMessage(r), 0);
}

public final boolean postDelayed(@NonNull Runnable r, long delayMillis) {
return sendMes

元記事を表示

React Nativeでスマートフォンのカレンダーのデータを取得

# 調査内容
Android/iOS共にNativeコードではスマートフォンのカレンダーデータにアクセスする事ができますが、React Nativeでアクセスする方法について調査しました。今回はAndroidでのみ動作確認を行いましたが、iOSでも動作可能と思われます。
スクリーンショット 2020-02-08 17.40.18.png

# 設定手順
以下のモジュールを利用します。
https://github.com/wmcmahan/react-native-calendar-events

“`
$ npm install –save react-native-calendar-events
$ react-native link
“`

今回はAndroidで動作確認をしますので、AndroidのNa

元記事を表示

AndroidでBluetooth関係のAPIを使ってPAPERANGに接続してみる

# はじめに

正月に秋葉原行ってじゃんぱらでPAPERANGを購入。
で、PAPERANGのAPIないかなと探したけど、Cordovaのプラグインしか見つからなかったので、プラグインのソースをAndroidStudioで普通にアプリに使えないか試してみる。
もし、もっと良い方法を知ってる方がいたらコメントください。

うまく使えたら、Androidの会で何か作るときや、ハッカソンなんかで使ってみたい。

CordovaのPAPERANG pluginを見つけて、その中のjarを使ってできないか試したが、なんか、メーカーからIDとかもらわないとできそうもないのであきらめ、別の方法を模索。
Androidの会 浜松支部の定例会で、話をしていたところ、よさげなページを見つたので、そこを参考に紙送りができるところまで確認できた。

良さげなページは以下のサイト
[M5StickC(ESP32)からBluetooth小型ポータブルレシートプリンタ「PAPERANG」を制御する](https://lang-ship.com/blog/?p=1318)
[Bluetooth小型ポータブルレシートプ

元記事を表示

Flutter MethodChannel APIの使い方

# はじめに

FlutterはクロスプラットフォームなUIフレームワークです。UI特化のため、UI作る以外のプラットフォーム固有の機能を利用する場合には、公開されているライブラリ (プラグイン) を利用する以外にはFlutterの専用APIを利用してプラットフォーム側の実装を行う必要があります。

プラットフォーム固有機能の例は以下です。

* Audio/Videoなどのメディアのデコード, エンコード, 再生
* ランタイムパーミッションの表示や設定確認
* Bluetoothや加速度センサーなどのハードウェア機能
* WebView
* ストレージやファイルアクセス

Dart⇆プラットフォーム双方向でまとまった情報が無かったため、ここにまとめることにしました。
今回はいくつかあるAPIのうち、最もよく使う[MethodChannel](https://api.flutter.dev/flutter/services/MethodChannel-class.html)について使い方を解説します。

## 関連記事

Flutter (Dart) とプラットフォーム (Andro

元記事を表示

Android でもとりあえず Ubuntu のデスクトップ環境を使いたい(UserLAnd 版)

## はじめに

先に公開した Android Studio を使うための最低限のデスクトップ環境の構築方法を記載します。
日本語入力もありませんが、その代わり最短で構築できると思います。

Android の上で最も手軽に Ubuntu の環境を構築するなら UserLAnd が一番楽だと思われます。
Termux でもできますが、UserLAnd の方が手間が少なくて済みます。
その代わり、Termux より動作速度が遅いです。
どちらが良いかはお手持ちのスマートフォンの速度と好みで選ぶと良いと思います。

## 注意点

デスクトップ環境(LXDEやXfce)のインストールは数時間かかります。
時間を確保してから実施するほうが良いと思います。

## インストール

Play ストア で UserLAnd と XSDL をインストールしてください。
UserLAnd は Debian や Ubuntu といった Linux 環境を簡単に構築するためのアプリケーションになります。
XSDL は画面を担当するアプリケーションです。
UserLAnd はコマンドラインまでしかサポートし

元記事を表示

【Android】Jetpack、AndroidX、Architecture Componentsなどの用語や関係性を整理する

Android の [Architecture Components](https://developer.android.com/topic/libraries/architecture/) を使ってみたくて情報を調べていたら、「Jetpack」「AndroidX」などの用語も合わせてよく見かけた。Android 開発経験が1年に満たない自分には、まだこれらの意味や関係性がピンと来ていなかったので、この機会に一通り調べて整理してみた。

※自分なりに解釈したものなので、もし間違っているところがあればコメントなどをください:pray:

# Android Jetpackとは?

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65644/3de2cda6-5d43-5b18-a3ee-7b93bd6cbd4e.png)

https://developer.android.com/jetpack

> Jetpack は、高品質の Android アプリをデベロッパーが簡単に作成するた

元記事を表示

Androidの強制アップデートでよく使うアプリバージョン比較方法

現在のバージョンと強制アップデートのバージョンを比較して、処理をするということはよくあります。
重大なバグがあった場合に「このバージョン以上は〜する」みたいなときに使うあれです。

“`kotlin
/**
* バージョン
*
* @property major メジャーバージョン
* @property minor マイナーバージョン
* @property patch パッチバージョン
*/
class Version(val major: Int, val minor: Int, val patch: Int) : Comparable {

/**
* コンストラクタ
*/
constructor(major: Int) : this(major, 0, 0)

/**
* コンストラクタ
*/
constructor(major: Int, minor: Int) : this(major, minor, 0)

/**
* バージョン(Int)

元記事を表示

[Android] TextView の textScaleX を自動調整する

# 何を作ったか
限られたスペースしか使えない状況で TextView に長い文字列を表示させようとして、途中で文字列が切れてしまい見た目がよろしくない経験は多々あるでしょう。解決策はいろいろあるでしょうが、ここでは textScaleX と呼ばれる TextView の属性に注目します。表示する文字の横方向への伸縮倍率を表す値であり、1より大きい値なら文字列を伸ばし、逆に1より小さな値なら文字列を収縮させます。TextView の最大横幅に収まり切らない長さの文字列を表示するときに、この textScaleX の値を自動で調節して文字列の長さを圧縮する View を作りました。クラス名は ExpandableTextView とでも呼びましょう。

## デモ画像
分かりやすさのため、ExpandableTextView の背景を灰色にしてあります。
![expandableTextView_demo.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440643/b7d1f051-24a0-11f2-3

元記事を表示

【Android/Kotlin】SearchView(検索バー)とちょっと仲良くなって入力文字列を取得できるようになった

# 概要
Androidアプリで、リスト内検索機能を実装したかったが、検索バーとは面識がなかった。
そこで、検索バーと少し遊んで基本的な使い方を知った。設置方法や、入力した文字列を取得する際に使えそうなメソッドを備忘録的にまとめる。
![not_iconified_searchbar.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/124752/dc466b1c-6402-9735-ab12-e9985872fed8.png)

# 画面に検索バーを設置する
`xml`に[`SearchView`](https://developer.android.com/reference/kotlin/android/widget/SearchView.html)を記述すれば検索UIを設置できる。

“`xml

元記事を表示

Android (Flutter) で Android dependency ‘xxx’ has different version というエラーが出たときの対処

## 状況

Flutter のバージョンを上げたらビルドできなくなりました。

Android Studio: 3.5.3
Flutter: 1.12.13+hotfix.7

## やったこと

端的に言うと、次の2点です。

* 依存ライブラリのアップデート
* Gradleのアップデート
* guava の問題の解消

以下、詳細です。

### 依存ライブラリのアップデート

具体的には下のようなエラーが出ていました。

“`
Launching lib/main.dart on Android SDK built for x86 in debug mode…
Running Gradle task ‘assembleDebug’…

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ‘:app:preDebugBuild’.
> Android dependency ‘androidx.lifecycle:lifecycle-viewmode

元記事を表示

Windows の Hyper-V を無効化して Android 開発用に HAXM へ切り替える

## はじめに

これまで Hyper-V で仮想マシンを利用していた Windows PC で Android アプリ開発を行うため、折角なので HAXM (Intel Hardware Accelerated Execution Manager) を利用して、Android エミュレータを高速化することにしました。

いろいろと調べてみると、下記制約などがあるとのこと。

1. CPU が Intel 製であること( Ryzen などの AMD 製 CPU では利用できない)

→ Intel Core i5 なので OK

2. CPU が仮想化支援機能 (VT-x) をサポートしていること

→ こちらも Intel Core i5 なので OK

3. BIOS や UEFI で仮想化支援機能 (VT-x) が有効化されていること

→ Hyper-V を利用していたからOK

4. Windows が仮想化支援機能 (VT-x) を認識していること

→ こちらも Hyper-V を利用していたからOK

5. Microsoft Hyper

元記事を表示

OTHERカテゴリの最新記事