こんにちは、id:numanuma08です。私がAndroidアプリの開発中に発生したAndroid Studioのバグとその対応方法を紹介します。
2021/08/12 追記
同じ問題が再発するようになりました。ここに書いてある方法でも解決しません。いろいろ試した結果もっとも効果があって素早く解決する方法は、macからのログアウトです。OSの再起動ほどは時間がかかりませんが、開いているアプリをすべて終了するのでそこそこだるいです。
StackoverflowやIntelli jのバグトラッカーで調べると同じ問題が相当前から発生していること、どうやらjava applet由来の問題っぽいことから今後Android Studioのjreがjava11からアップデートしない限り解消されないんじゃないかな?と思っています。
マウスクリックができなくなる
Android Studioでコードを書いたりビルドしていると急にマウスクリックができなくなる現象が発生しました。いつ頃から発生していたかは記憶にありませんが、Android Studio4系のメジャーアップデートを2回くらい行っても問題が改善しませんでした。今日(2021/08/04)もこの不具合が発生したのでその環境を書いておきます。
- iMac (Retina 5K, 27-inch, 2017)
- macOS 11.4
- Android Studio Arctic Fox | 2020.3.1
- Build #AI-203.7717.56.2031.7583922, built on July 27, 2021
- マウス: Elecom EX-G Pro
不具合が発生したときの動画をキャプチャしたものがこちらです。
macのAndroid Studioでマウスクリックが効かなくなる現象のキャプチャ。雰囲気だけどエディタの描画領域がおかしくなってる?
— ぬま (@numa08) 2021年8月4日
キー入力はできるのでショートカットキーで戦うことはできる(辛い
この現象はいまのところmacを再起動しないと直らない pic.twitter.com/fZ8Wez8ieP
違うわ
— ぬま (@numa08) 2021年8月4日
完全にマウスクリックが使えなくなった。カーソルのハイライトだけはされるんだよな
謎 pic.twitter.com/DqQykBsKJA
マウスカーソルを移動するとカーソルのハイライトはされるのですが、クリックイベントが一切受け付けられない状態です。このとき、次のような特徴がありました。
- Android Studio以外のアプリは問題なく使えるので、Android Studio固有の問題
- キーボード入力からショートカットキーの実行はできるので、Android Studioのフリーズではない
- Android Studioを再起動、再インストールしても問題は解消しない
- macを再起動すると問題は解消する
解決
ちょうど今日も不具合が発生したので本腰を入れて調査するかーと思い、Twitterに一連の流れを投稿していたところ@matsudamperさんから有力な情報が得られました。
自分がこれなったとしたらまずはRuntimeJDKを変更してみるかなぁ。 https://t.co/L8pYkDuoQy
— マツダンパー⋈ (@matsudamper) 2021年8月4日
Macではまだなったことないですが、Winで前なったことがあるので。https://t.co/lgVjLrcfTY
— マツダンパー⋈ (@matsudamper) 2021年8月4日
プラグイン必要になってましたね。https://t.co/SPKnhQG2c1
— マツダンパー⋈ (@matsudamper) 2021年8月4日
おおむねこれが決め手で問題が解決しました。Choose Runtime PluginをインストールしてAndroid Studioを実行するJREのバージョンを変更すると良さそうです。
やったこと
いくつかの手順を組み合わせたのでどれが根本解決に直接つながったのか分からないので、やったことをメモしておきます。
Android Studioのウィンドウサイズを変更する
Runtime JREの変更よりこっちのほうが効果あった気がするので最初の手順に書いておきます。Android Studioのウィンドウサイズを最小化し、その後最大化して再起動します。今回、JREの変更とウィンドウサイズの変更を同時に行ったのでどっちが効果があったのかは分かりません・・・。
Choose Runtime Pluginをインストールする
Android Studio 2020.3以降はランタイム変更がプラグインに独立したので、このプラグインをインストールします。マウスが使えない状態ですが、
- Shiftキー2回で検索窓を開く
Plugins
と入力- Tabキーでプラグイン検索フォームをハイライトし「Choose Runtime」と入力
- TabキーでChoose Runtime Pluginを選んでSpaceでインストール
- Tabキーで「OK」ボタンをハイライトして、Spaceでインストール実行
- このとき、プラグイン検索フォームに適当に文字を入力し、プラグイン検索結果を0件にしておくと「OK」ボタンへのハイライトがしやすくなります
Runtime JDKを変更する
Android Studioを終了しておきます。
Choose Runtime Pluginをインストールすると/Library/Application Support/Google/AndroidStudio2020.3/studio.jdk
が生成されます。このファイルはテキストファイルなので適当なエディタで編集します。ファイルは1行だけ利用しているJDKへのパスが書かれています。今回は、Android Studioにデフォルトで含まれているJDKを選択しましたので、ファイル内容は以下です。
/Applications/Android\ Studio.app/Contents/jre
内容を変更したらAndroid Studioを起動します。
まとめ
Android Studioでマウスクリックが効かなくなる不具合と、その解消方法を紹介しました。同じ問題で困っている人がいたら参考にしてください。