画面上部のLED点滅は一体なんだったのか【Android12 / Pixel5】

ロック画面時に謎だったのですが、



このアプリを入れてみて分かりました。

👉 センサーツールボックス - Google Play のアプリ 



「近接センサー稼働中」

の明示ですね。

で、

ロック画面では、どの機能がLEDを点滅させているか?

ということですが、

How to disable the annoying flashing dot on your Pixel 5

[設定] - [システム] - [ジェスチャー] からの

「ふせるだけでサイレントモードをオン」

のようです。

👉 How to disable the annoying flashing dot on your Pixel 5 - 9to5Google 


AndroidStudio 利用する Java (JDK) の選択・設定の方法

AndroidStudio 上でプロジェクトテンプレートの「KMM Application」を動かそうとすると以下のようにコケる。


An exception occurred applying plugin request [id: 'com.android.application']
> Failed to apply plugin 'com.android.internal.application'.
   > Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
     You can try some of the following options:
       - changing the IDE settings.
       - changing the JAVA_HOME environment variable.
       - changing `org.gradle.java.home` in `gradle.properties`.

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 509ms
Command PhaseScriptExecution failed with a nonzero exit code

** BUILD FAILED **


The following build commands failed:
PhaseScriptExecution Run\ Script
/Users/maochanz/AndroidStudioProjects/KMM/build/ios/iosApp.build/Debug-iphoneos/iosApp.build/Script-7555FFB524251A00829871.sh (in target 'iosApp' from project 'iosApp')
(1 failure)

先程のビルドエラーのメッセージにもあるように、Java 11 (JDK) を IDEである AndroidStudio に認識させる方法として、3つが挙げられている。

- IDE設定の変更
- 環境変数 JAVA_HOME の変更
- gradle.properties の org.gradle.java.home の変更

この3つのうち、どれを変更すればいいのか。

 

■ IDE設定の変更

AndroidStudio には、以下でビルド時のJDKを選択できる。


[Preferences]

  ↓

[Build]

  ↓

[Build Tools]

  ↓

[Gradle JDK]

embed jdk

現在の AndroidStudio には、「openjdk version "11.0.10" 2021-01-19」 が同梱されており、それを選択することもできるし、別に自分でインストールしているものも選択可能になっている。

しかし、IDEA製品では、自分で入れたJDKを使うほうが良さそう。


インストールしたら、パスを確認しておきましょう。


❯ /usr/libexec/java_home -V
Matching Java Virtual Machines (1):
    11.0.18 (x86_64) "Homebrew" - "OpenJDK 11.0.18" /usr/local/Cellar/openjdk@11/11.0.18/libexec/openjdk.jdk/Contents/Home
/usr/local/Cellar/openjdk@11/11.0.18/libexec/openjdk.jdk/Contents/Home

影響範囲: AndroidStudio 上のすべてのプロジェクト

 

■ 環境変数 JAVA_HOME の変更

利用するユーザーの環境変数の JAVA_HOME に設定する。

先程、確認した同梱JDKのパスをセットします。


❯ vi .zshrc
...
export JAVA_HOME=$(/usr/libexec/java_home -v11)
export PATH="$JAVA_HOME/bin:$PATH"

❯ source .zshrc

❯ echo $JAVA_HOME
/usr/local/Cellar/openjdk@11/11.0.18/libexec/openjdk.jdk/Contents/Home

❯ java -version
openjdk version "11.0.18" 2023-01-17
OpenJDK Runtime Environment Homebrew (build 11.0.18+0)
OpenJDK 64-Bit Server VM Homebrew (build 11.0.18+0, mixed mode)


この環境変数を利用して AndroidStudio は、JDK の位置を認識します。

しかし、ユーザー単位の環境変数なので、これを利用した他のアプリケーションにも影響するかもしれません。

AndroidStudio の再起動で反映されます。

影響範囲: OS上 JAVA_HOME 利用アプリケーションたち

 

■ gradle.properties の org.gradle.java.home の変更

gradle.properties は、AndroidStudio 上のプロジェクトの gradle 設定ファイルです。

以下のように追記します。


org.gradle.java.home=/usr/local/Cellar/openjdk@11/11.0.18/libexec/openjdk.jdk/Contents/Home

AndroidStudio 上部メニューから [Build] → [Rebuild Project] で反映されます。

Build - Rebuild project

影響範囲: AndroidStudio上 該当プロジェクト

 

■ まとめ

KMM Application


❯ ./gradlew -version

------------------------------------------------------------
Gradle 7.6
------------------------------------------------------------

Build time:   2022-11-25 13:35:10 UTC
Revision:     daece9dbc5b79370cc8e4fd6fe4b2cd400e150a8

Kotlin:       1.7.10
Groovy:       3.0.13
Ant:          Apache Ant(TM) version 1.10.11 compiled on July 10 2021
JVM:          11.0.18 (Homebrew 11.0.18+0)
OS:           Mac OS X 13.1 x86_64


ビルド自体は、JAVA_HOME の変更か、gradle.properties の変更、のどちらか一つで通り、生成されたアプリも問題ないようにみえる、が正しくはどうなのか。

上記の設定で改善されない場合は以下で。


👉 Mac に Homebrew で OpenJDK11 を インストール する hatena-bookmark
👉 JetBrains Toolbox で Android Studio の Stable/Beta/Canary が同時に管理できる? hatena-bookmark
👉 Android Studio と JDKバージョン 


Mac に Homebrew で OpenJDK11 を インストール する

http://openjdk.java.net/


➜  ~ brew search openjdk
==> Formulae
openjdk         openjdk@11     openjdk@8       openj9          openvdb

...

openjdk@11 — Homebrew Formulae
👉 openjdk@11 — Homebrew Formulae 


➜  ~ brew info openjdk@11
openjdk@11: stable 11.0.12 (bottled) [keg-only]
Development kit for the Java programming language
https://openjdk.java.net/
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/openjdk@11.rb
License: GPL-2.0-only
==> Dependencies
Build: autoconf ✔
==> Caveats
For the system Java wrappers to find this JDK, symlink it with
  sudo ln -sfn /usr/local/opt/openjdk@11/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-11.jdk

openjdk@11 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.

If you need to have openjdk@11 first in your PATH, run:
  echo 'export PATH="/usr/local/opt/openjdk@11/bin:$PATH"' >> ~/.zshrc

For compilers to find openjdk@11 you may need to set:
  export CPPFLAGS="-I/usr/local/opt/openjdk@11/include"

...


➜  ~ brew install openjdk@11
...

「keg-only」は「リンクされていない」。


➜  ~ sudo ln -sfn /usr/local/opt/openjdk@11/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-11.jdk
➜  ~ echo 'export PATH="/usr/local/opt/openjdk@11/bin:$PATH"' >> ~/.zshrc
➜  ~ export CPPFLAGS="-I/usr/local/opt/openjdk@11/include"


➜  ~ vi .zshrc                                                                      
...
#export PATH="/usr/local/opt/openjdk@11/bin:$PATH"

JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
JAVA_11_HOME=$(/usr/libexec/java_home -v11)

export JAVA_HOME=$JAVA_11_HOME
export PATH="$JAVA_HOME/bin:$PATH"


➜  ~ source ~/.zshrc


➜  ~ ls -l /Library/Java/JavaVirtualMachines
total 0
drwxr-xr-x  3 root  wheel  96 11 10  2020 adoptopenjdk-8.jdk
lrwxr-xr-x  1 root  wheel  45 11 30 09:43 openjdk-11.jdk -> /usr/local/opt/openjdk@11/libexec/openjdk.jdk


➜  ~ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
    11.0.12 (x86_64) "Homebrew" - "OpenJDK 11.0.12" /usr/local/Cellar/openjdk@11/11.0.12/libexec/openjdk.jdk/Contents/Home
    1.8.0_275 (x86_64) "AdoptOpenJDK" - "AdoptOpenJDK 8" /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
/usr/local/Cellar/openjdk@11/11.0.12/libexec/openjdk.jdk/Contents/Home


➜  ~ java -version
openjdk version "11.0.12" 2021-07-20
OpenJDK Runtime Environment Homebrew (build 11.0.12+0)
OpenJDK 64-Bit Server VM Homebrew (build 11.0.12+0, mixed mode)


➜  ~ javac -version
javac 11.0.12


👉 OpenJDK 
👉 AdoptOpenJDK - Open source, prebuilt OpenJDK binaries 
👉 Adoptium - Open source, prebuilt OpenJDK binaries 

👉 KMM まとめ 速報 - Kotlin Multiplatform Mobile 【#ios | #android】 

👉 MacでインストールされているJavaを確認する方法 - Qiita 
👉 Homebrewでjavaをインストールする方法 - Qiita 
👉 MacにJava開発環境をインストールする - Qiita