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

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

Androidエミュレーターでadb remountしようとしてもfailする場合

## adb remountを実行するとfailする

この記事に従ってhostsを書き換えようと思ったが出来なかった。

https://qiita.com/devnokiyo/items/5388169f798bd2678d64

## 解決策

最初から入ってるエミュレーター`Nexus_5X_API_29_x86`では頑張っても無理でした。
Android Studioから新しいエミュレーター`Nexus_6P_API_27`をインストールしてリトライしたらあっさり解決。

“`
$ emulator -list-avds
Nexus_5X_API_29_x86 // NG
Nexus_6P_API_27 // OK
“`

元記事を表示

ANDROID STUDIO KOTLIN ERROR : Cannot inline bytecode built with JVM target 1.8 into bytecode that is being built with JVM target 1.6. Please specify proper ‘-jvm-target’ option

ENVIRONMENT
 - AndroidStudio3.5.2 アンドロイドスタジオ
 - KOTLIN コトリン
 - MinRequirementAPI lolipop22 /TestMachine Nexus6

ERROR Contents エラー内容

“`
: Cannot inline bytecode built with JVM target 1.8 into bytecode that is being built with JVM target 1.6. Please specify proper ‘-jvm-target’ option
“`

新規にプロジェクトを構成し適当なテンプレートを選択してビルドすると上記エラーが出る場合があります。以下2ステップでエラーを解消できます。

#STEP1 ターゲットJVMを1.8に変更します。

「ファイル」「設定」「Kotlinコンパイラー」を選択し、ターゲットJVMバージョンを1.6から1.8へ変更します。

![0132.png](https://qiita-image-store.s3.ap-northe

元記事を表示

twrpを自分でビルドしてみた

# きっかけ
いつも通りtwrpを使っていたときにふと普段見てなかったスプラッシュ画面を見て気がついた

**これよく見たら別端末用じゃん**

※実話です

Ulefone Armor 5のtwrpのつもりで使ってたら
Ulefone **Power** 5のtwrpだったんです。
でもどれだけ探してもArmor 5向けのtwrpは見つからなかった自分でビルドすることにしました。

# で、どうやって?

## 神ツール発見
githubで”twrp build”みたいな単語を調べてたらすごい便利なツールを見つけたので今回はそれを使いました。

https://github.com/TwrpBuilder/twrpbuilder_tree_generator

これです。
twrp用にデバイスツリーを生成してくれるすごいツールです(語彙力
使い方もすごくかんたんで、適当な方法でrootを取りターミナルアプリをインストールし、ddでリカバリっぽいパーティションを取ってきて

“`bash
java -jar TwrpBuilder-1.0-SNAPSHOT.jar -r <ファイル名

元記事を表示

【AndroidStudio】Emulator: PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT

以下の記事の続きです。(自分的に)

– [【AndroidStudio】ERROR: Failed to install the following Android SDK packages as some licences have not been accepted.](https://qiita.com/yamahei/items/499ef3d39b275b108ffe)

AndroidStudioでエミュレータを使ってAndroidアプリをローカル起動しようとした(Run ‘app’)ところ、以下のエラー。

“`
Emulator: PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT
“`

環境変数がない。
確認したらない(当たり前か

“`
C:\Users\ORE>set ANDROID_SDK_ROOT
環境変数 ANDROID_SDK_ROOT が定義されていません
“`

AndroidStudio入れる前にXamarinでAndroidアプリ作ってたのがいけなかったの

元記事を表示

【AndroidStudio】ERROR: Failed to install the following Android SDK packages as some licences have not been accepted.

Windows10にAndroidStudio(3.5.2)をインストール。
gitからプロジェクトをclone。
Make Projectしたら以下のエラー。

“`bat
ERROR: Failed to install the following Android SDK packages as some licences have not been accepted.
platforms;android-27 Android SDK Platform 27
build-tools;28.0.3 Android SDK Build-Tools 28.0.3
To build this project, accept the SDK license agreements and install the missing components using the Android Studio SDK Manager.
Alternatively, to transfer the license agreements from one workstation to anoth

元記事を表示

【Androidアプリ入門】音声入力と時刻出力で遊んでみた♪

スマホアプリは難しいのかなと思っていたのでこれまでやらずにいたが、やってみると、
たかだか始めてから3日目ですが、なんとなく面白いので記事にしておこうと思う。

動機としては、先日の会話アプリの出来がいいので、ぜひみんなにも試してほしいのだが、スタンドアローンだとどうも反応がわからないので、スマホアプリにして音声で会話アプリまで作りたいということで、自信ないけど始めてみました。

始めて初日は、悪戦苦闘。。。ネットで探したアプリをベタ打ちで動かそうとしましたが、エラーだらけで一向に動きません。
ということで、一冊買って始めました。
初日は、ビジュアルスタジオインストールしてネットアプリを試して終わりました。
二日目は、以下の本の部品を画面に並べて実機で表示させて終わり。
今日は、三日目です。
[基礎&応用力をしっかり育成!Androidアプリ開発の教科書 Kotlin対応 なんちゃって開発者にならないための実践ハンズオン (CodeZine BOOKS) 単行本(ソフトカバー) – 2019/7/10
WINGSプロジェクト 齊藤 新三 (著), 山田 祥寛 (監修)](https:

元記事を表示

ServiceからDialogを出す

方法1:Dialogを使わない、自分はWindowManager.addViewの方法でViewを出す。
方法2:どうしてもカスタマイズDialog(AOSP Dialogを継承)を出す場合、
以下の一行のソースを追加したらできます
Dialog.show()を呼ぶ前に
getWindow().setType(WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY);
追加する

元記事を表示

UnityからAndroidビルドまで(2019.11)

## 前置き
UnityでAndroidにアプリをビルドする必要があったので、
いろいろ調べながらやりました。

## 環境
・Unity2018.3.14f1
・Android Build Supportはなし
・Unity Hub 2.1.3

##必要なもの
・Android Build Support
・Android SDK,JDK,NDK

##Android Build Support
まずこれが必要。
Unityをインストールするときにチェックを入れていればインストールされている。

確認方法はFile>Build Settings>Platform>Androidでこのような画面が出ればOK。
ない場合はNo Android module loaded.と表示され
Open Download Pageというボタンが表示されているはず。

Unity HubでUnityをインストールした人は
インストール>「︙」>モジュールを加える>
Android Build Supportにチェックを入れる>実行
でインストールできる。

## Android SDK,JDK,N

元記事を表示

【Android/Kotlin】UIまとめ

## 目次
1. パスワード非表示
2. addTextChangedListenerの書き換え
3. enum書き換え

## 1. パスワード非表示
![undefined]()

– java

“`MainActivity.java
editText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
“`
– kotlin

“`activity_main.xml

“`
## 2. addTextChangedListenerの書き換え
– java

“`MainActivity.ja

元記事を表示

Looper

Android中的Looper类,是用来封装消息循环和消息队列的一个类,用于在android线程中进行消息处理。handler其实可以看做是一个工具类,用来向消息队列中插入消息的。

(2) Looper类用来为一个线程开启一个消息循环。 默认情况下android中新诞生的线程是没有开启消息循环的。(主线程除外,主线程系统会自动为其创建Looper对象,开启消息循环。) Looper对象通过MessageQueue来存放消息和事件。一个线程只能有一个Looper,对应一个MessageQueue。

(2) 通常是通过Handler对象来与Looper进行交互的。Handler可看做是Looper的一个接口,用来向指定的Looper发送消息及定义处理方法。 默认情况下Handler会与其被定义时所在线程的Looper绑定,比如,Handler在主线程中定义,那么它是与主线程的Looper绑定。 mainHandler = new Handler() 等价于new Handler(Looper.myLooper()). Looper.myLooper

元記事を表示

[ Android ] 画面遷移時のデータのやり取り

今回は画面遷移時にどのようにしてデータをやり取りするかについて記す。

以前の記事https://qiita.com/QiitaD/items/1495f2f9839fe8706d31
で画面遷移の実装方法について記しているが、データのやり取りでもIntentを使う。

##データを引き渡たし
Intentを生成した後putExtraメソッドを使えば、引き渡すことができる。
このメソッドにはkeyとvalueを指定する。

~~~java
Intent intent = new Intent(getApplication(), SubActivity.class);
//intent.putExtra(key,value);
intent.putExtra(“EXTRA_DATA”, data1);
startActivity(intent);
~~~

これで渡すことができる。

##データの受け取り
受け取るときはgetString(key)で受け取ることができる。
具体的には以下のように実装する。

~~~java
Intent intent = getIntent();
dat

元記事を表示

ionicでadmobを使用する

# IonicでAdmobを使用する

Ionicを使用してクロスプラットフォームのアプリを開発したし、折角なので、収益化をしたいという方のための記事です。(私はAngularベースで開発をしていますので、他のVue等では異なる可能性がございます。)

色々なドキュメントで書かれていることが違い、時間を消費してしまったので、まとめてみます。
もしかすると、不要な記述もあるかもしれませんので、コメントなどで、教えていただけると幸いです。

## 手順
1. Admobに登録し、アプリIDを取得する。
簡単ですので、以下のヘルプを参考に登録してください。
https://support.google.com/admob/answer/7356219?hl=ja

1. プラグインのインストールをする。
https://github.com/ratson/cordova-plugin-admob-free
に従い、Install する。

“`sh
cordova plugin add cordova-plugin-admob-free –save –variable ADMOB_AP

元記事を表示

Android PからのSystem TracingとPerfettoを使ってパフォーマンスを確認しよう

traceがいい感じに使えるようになっていたのでシェアです。
これはAndroid Dev Summitで紹介されています。

PerfettoはUIが改善されたSystraceのUIです。Chromeをクラッシュさせずに、しかもかなり快適に動きます!

# 事前準備

開発者向けオプションからSystem Tracingを有効にしてShow Quick Settings tileを有効にします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27388/d069e0cf-6c4c-3706-71f1-76912a51a822.png)

# trace方法

こんな感じのActivityがあったとします。

“`kotlin
class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState:

元記事を表示

GithubActionsでgitignoreしたgoogle-services.jsonを読み込む

# 背景

Firebaseを使ったAndroidアプリ開発なら`google-services.json`は必須のファイルだけれど、プライベートな情報のためgitignoreしていた

# 問題

GithubActionsにてAndroidのワークフローを記述していてBuild error
原因は
`google-services.json is missing`

そのためCI時にのみ`google-services.json`を読み込ませる必要があった

# どうしたか

## もとのjsonファイルをbase64化した値を取得する

“`shell
cat google-services.json | base64
“`

“`shell
openssl base64 -in google-services.json -out base64file
“`

## 取得した値をGithubRepositoryの`Secrets`に記載する

`Setttings -> Secrets -> Add a new secrets`

![スクリーンショット 2019-

元記事を表示

[ Android ] ダイアログ

今回はAndroidでのダイアログの実装方法について記す。

##ダイアログとは
例えばエラーが発生したときに以下のようなものが表示されると思う。
![スクリーンショット (156).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506451/a32e43a6-3ba2-992f-b405-ca2241a6ebf1.png)
これがダイアログである。

##実装方法
上記の例で紹介したダイアログの実装方法は以下のとおりである。
~~~java
new AlertDialog.Builder(this)
.setTitle(null)
.setMessage(“予期せぬエラーが発生しました。タイトルに戻ります。”)
.setPositiveButton(“OK”, null)
.show();
~~~

setTitleはnullにしているが、タイトルを付けたい場合、文字列を入れればよい。
setTitle(“通信エラー”);とすると以下の

元記事を表示

androiddebugkey(SHA-1)の取得法(windows)

jdkのbinにpathを通す。

cmdにて。

“`cmd
keytool -list -v -keystore “%USERPROFILE%\.android\debug.keystore” -alias androiddebugkey -storepass android -keypass android
“`

参考
https://codeday.me/jp/qa/20181223/13733.html

元記事を表示

AndroidのUDPクライアントに遅延を自分で設定できるようにしてみた

#前回からの変更点
前回のプログラムでは遅延時間を500ミリ秒に設定していましたが、加速度センサの値を計測するにあたり、動作検地をする場合に遅延時間を早めるために遅延を自分で調整できるように改善しました。

#ソースコード
“`xml:AndroidManifest.xml

“`
AndroidManifest.xmlにインターネットを使用できるパーミッションを追加しないと動作できないので気をつけること。(2敗)

“`xml:activity_main.xml

元記事を表示

【Kotlin/Android】switch(トグル)を非活性にする

– switchをクリックしたら、3秒間の間クリックできないように実装しました。
– isClickableが正しいです。
– isEnableは3秒間の間、意図していないのに色が濃いグレーになってしまいます。
※isClickableのグレーは、自分で指定した温度です。
 2019-11-19 16.11.39.png

“`MainFragment.kt
val switch: Switch = view.findViewById(R.id.main_switch)
// switchの最小の長さを設定しています。
switch.switchMinWidth = PhoneInfo.getPhoneWidth(this.context) / 6
switch.isChecked = true

元記事を表示

[ Android ] プルダウンの実装方法

今回はAndroidにおけるプルダウンの表示の仕方を記す。

##プルダウンとは
複数の候補から選択する際、よく見かける。以下がその例である。
![スクリーンショット (153).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506451/7029d629-5b1a-4ec1-f5a3-00f34e519258.png)

##実装
実装方法は簡単である。まずxmlファイルにSpinnerを追加する。もちろん幅や高さは好きにしてよい。

~~~xml

~~~

次にjavaファイルにプログラムを書く。
こちらではArrayAd

元記事を表示

コードレビュー虎の巻

# レビューガイドライン(Review GuideLine)

ここで述べているレビューはピアレビューについての方法です。
(作業成果物の欠陥と改善の機会を探すレビュー)

「最悪を最初に」を基本としてレビューすべき、
たとえば、仕様やアルゴリズムに欠陥があるのに、typoにこだわってもしょうがないので、なにが最悪かを考え、それを防ぐための物からレビューをします。

誤りがプロダクト全体に影響し、手戻りのコストが高くつく、あるいは失敗するようなリスクがないかを考慮にいれてレビューの対象を選択します。
たとえば、基本的な初期フェーズの要求仕様や、クリティカルな決定の基礎になる仕様、使用頻度が高いモジュールなどを重点的にレビューします。

以下に書く項目はレビュアーに負担をかけないようにするのが前提なのでレビュアーに出す前にそもそもテストしたい項目です。

参考:
[あなたのおっしゃるレビューってどのことかしら?](https://qiita.com/mima_ita/items/c3490ad1ccc12ad853f1)
[コードレビューの際に気

元記事を表示

OTHERカテゴリの最新記事