Android Studio 4.2(2021 年 4 月)

Android Studio 4.2 はメジャー リリースで、さまざまな新機能と改善が組み込まれています。

4.2.2(2021 年 6 月)

このマイナー アップデートには、さまざまなバグ修正が含まれています。主なバグ修正のリストについては、リリース アップデート情報ブログの関連記事をご覧ください。

4.2.1(2021 年 5 月)

このマイナー アップデートには Kotlin プラグイン 1.5.0 がバンドルされており、さまざまなバグの修正が含まれています。主なバグ修正のリストについては、リリース アップデート情報ブログの関連記事をご覧ください。

Android Gradle プラグイン 4.2.0

最新バージョンの Android Gradle プラグインには多くのアップデートが含まれています。詳細については、Android Gradle プラグインのリリースノート全文をご覧ください。

Gradle の互換性と構成の変更

Android Studio で実行する場合、Gradle ビルドツールは Studio のバンドルされた JDK を使用します。以前のリリースでは、JDK 8 が Studio にバンドルされていました。しかし、4.2 では JDK 11 がバンドルされるようになりました。新しくバンドルされた JDK を使用して Gradle を実行すると、ガベージ コレクタに加えられた変更により、一部で非互換性が生じる場合や JVM のパフォーマンスが影響を受ける場合があります。これらの問題については、AGP リリースノートをご覧ください。

Gradle の同期時間を最適化するオプション

Gradle 同期のパフォーマンスを改善するため、Android Studio では同期中にタスクリストの作成がスキップされます。これにより、Gradle 同期の処理が速くなり、非常に大規模なプロジェクトで UI の応答性が向上します。このオプションは、Android Studio 4.2 ではデフォルトで有効になっています。無効にするには、[File] > [Settings] > [Experimental](Mac の場合は [Preferences] > [Experimental])に移動し、[Do not build Gradle task list during Gradle sync] チェックボックスをオフにします。

Database Inspector

クエリエディタの改善

Database Inspector で、カスタム SQL ステートメントの作成と実行に役立ついくつかの改善が行われました。Database Inspector を開いて [New query] タブを開くと、以下に示すように、クエリを作成してフォーマットするためのエディタが、今までより大きいサイズ変更可能なサーフェスで表示されます。

DB Inspector エディタ

また、以前のクエリの履歴も表示できるようになりました。クエリ履歴表示ボタン クエリ履歴表示ボタン{: .inline-icon} をクリックすると、現在選択されているデータベースに対して以前実行されたクエリのリストが表示されます。リスト内のクエリをクリックすると、クエリ全体のプレビューがエディタに表示されます。Enter キーを押すと、エディタにコピーされます。[Run] をクリックすると、ステートメントが実行されます。

クエリエディタの [Run] コマンド

オフライン モード

以前のバージョンの Android Studio では、Database Inspector の使用中にアプリプロセスからの切断が発生すると、Database Inspector とそのデータが閉じられていました。Android Studio 4.2 では、プロセスからの切断後もアプリのデータベースを引き続き検査できるようになり、クラッシュ後のアプリのデバッグが容易になりました。

切断が発生すると、Database Inspector はデータベースをダウンロードして、オフライン モードで利用できるようにします。オフライン中に、テーブルを開いてクエリを実行できます。

ライブのアプリプロセスに再接続すると、Database Inspector はライブモードに戻り、デバイス上のデータのみを表示することにご注意ください。つまり、オフライン モードで表示されるデータは、アプリプロセスに再接続すると保持されません。このため、Database Inspector では、オフライン モード中は変更ステートメントの編集または実行ができません。

AGP 用の Upgrade Assistant

Android Gradle プラグイン用の新しい Upgrade Assistant は、プロジェクトの AGP バージョンの更新に役立ちます。

Android Gradle プラグインの Upgrade Assistant ダイアログ

このツールは既存の AGP アップグレード機能を基に構築されており、プロジェクト全体のアップデートとリファクタリングをガイドします。また、アップデートのプレビューを含んでいるので、AGP アップグレードを実行する前に、互換性を破る変更を防止するために役立ちます。

Upgrade Assistant によって行われる変更のプレビュー

システム トレース: メモリとグラフィックの指標の改善

CPU Profiler で、アプリのパフォーマンスを分析するための新しい指標がシステム トレース機能に追加されました。次のものが含まれます。

  • Events テーブル現在選択されているスレッドのすべてのトレース イベントを一覧表示します。

  • BufferQueue: [Display] セクションにあるこの新しいトラックには、アプリのサーフェス BufferQueue のバッファ数(0、1、2 のいずれか)が表示されます。これは、Android グラフィック コンポーネント間を移動する際の画像バッファの状態を把握するのに役立ちます。

    システム トレースの [BufferQueue]

  • CPU Frequency: [CPU cores] セクションにあるこの新しいトラックには、コアごとの CPU 周波数が表示されます。これは、各コアの多忙さを示します。

    システム トレースの [CPU Frequency]

  • Process Memory (RSS): この新しいウィンドウには、アプリが現在使用している物理メモリの量が表示されます。

    システム トレースの [Process Memory (RSS)]

詳細については、CPU Profiler を使用して CPU アクティビティを検査するをご覧ください。

Layout Inspector の新しい更新アクション

Android Studio 4.0 で導入された Layout Inspector は、実行中のアプリの UI スタックをリアルタイムで検査するために設計されました。しかし、Layout Inspector がアプリの現在の状況を即時に反映することが望ましくないケースがあります。たとえば、特定の時点におけるアプリのレイアウトのスナップショットを検査したい場合や、ライブ更新がアプリのパフォーマンスに及ぼす影響を最小限に抑えたい場合などです。

アプリから UI データのスナップショットを手動で読み込むには、まず [Live updates] オプションを無効にします。次に、Refresh {:.inline-icon} ボタンをクリックすると、検査する UI スタックの新しいスナップショットを取得できます。Layout Inspector では、セッション間で [Live updates] を有効または無効のままにする設定が記憶されるようになりました。

Safe Args のサポート

Safe Args は、ナビゲーションとすべての関連する引数へのアクセスをタイプセーフに行うためのシンプルなオブジェクトとビルダークラスを生成する Gradle プラグインです。Android Studio では、以下に示すように、Safe Args を扱う場合のサポートが拡充されました。

  • Directions、Args、各種ビルダークラスのオートコンプリート
  • Java と Kotlin 両方の Safe Args プラグインのサポート
  • ソースから XML へのナビゲーション

コマンドライン ツールで R8 retrace を利用可能

コマンドライン ツールのバージョン 4.0 で利用できる R8 retrace は、難読化されたスタック トレースから元のスタック トレースを取得するためのスタンドアロン ツールです。

このパッケージは SDK Manager でダウンロードできます。SDK Manager は R8 retrace を android_sdk/cmdline-tools にインストールします。または、スタンドアロンのコマンドライン ツール パッケージをダウンロードすることもできます。

使用方法については、ユーザーガイドの R8 retrace をご覧ください。

複数のデバイスへのデプロイ

複数のデバイスと API レベルでのアプリのテストを簡素化するために、アプリを複数のデバイスまたはエミュレータに同時にデプロイできるようになりました。手順は次のとおりです。

  1. 対象デバイスのプルダウン メニュー(IDE の上部中央にあります)で、[Select Multiple Devices] を選択します。

    対象デバイスのプルダウン

  2. 対象デバイスを選択して [OK] をクリックします。

    [Modify Device Set] ダイアログ

  3. アプリを実行します。

機能モジュールの新しい removable 設定

Android Gradle プラグイン 4.2 は bundletool 1.0.0 を使用しており、機能モジュールを使用するアプリでの動作が変更されています。dist:install-time と指定されていて明示的に dist:removable とマークされていない機能モジュールは、デフォルトでは removable ではなくなります。この新しい設定により、インストール時のモジュールとベース モジュールの融合が最適化され、一部のアプリではパフォーマンスが向上する可能性があります。

機能モジュールを removable のままにするには、アンインストールするモジュールに対して dist:removable="true" を設定します。

この新しい設定の詳細については、機能モジュールのマニフェストのドキュメントにある dist:removable タグの説明をご覧ください。

Apply Changes

アプリを反復開発する際の生産性を向上させるため、Android 11 以降を搭載したデバイス向けの Apply Changes に対して、次のような機能強化が行われました。

追加のコード変更のサポート

Android 11 以降を搭載したデバイスの場合、static final のプリミティブ フィールドを追加した後で、コードの変更を適用アイコン 「コードの変更を適用」アイコン または変更を適用してアクティビティを再スタート アイコン 「変更を適用してアクティビティを再スタート」アイコン をクリックして、変更を実行中のアプリにデプロイできるようになりました。

また、リソースを追加した後、変更を適用してアクティビティを再スタート アイコン 「変更を適用してアクティビティを再スタート」アイコン をクリックして、変更を Android 11 デバイスで実行中のアプリにデプロイできるようになりました。

更新された New Project および New Module ウィザード

[New Project] ウィザードと [New Module] ウィザードが更新され、新しいプロジェクトまたはモジュールの閲覧、テンプレートの選択、情報の入力が簡単になりました。

また、[New Module] ウィザードから、[Import .JAR/.AAR Package] オプションが削除されました。JAR または AAR をプロジェクトにインポートするには、代わりに [Project Structure] ダイアログを使用します。

Kotlin 1.4.31

Android Studio 4.2 には、Kotlin 1.4.31 がバンドルされています。主な変更点については、Kotlin 1.4.0 の変更履歴をご確認ください。

ANDROID_SDK_HOME 環境変数の非推奨化

ANDROID_SDK_HOME 環境変数が非推奨になり、ANDROID_PREFS_ROOT に置き換えられました。詳細については、エミュレータの環境変数をご覧ください。

Android Studio 4.2 に関する既知の問題

このセクションでは、Android Studio 4.2 に存在する既知の問題について説明します。完全なリストについては、既知の問題ページをご覧ください。

Android Studio 4.2.0 が、誤った Kotlin バージョン「1.5.0-release-764」でプロジェクトを生成する

Android Studio 4.2.0 を使用している場合に Kotlin プラグインを 1.5.0 にアップグレードすると、次のような Gradle 同期エラーにより、Studio によって作成された新しい Kotlin プロジェクトがビルドに失敗します。

Could not find org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.0-release-764.

回避策としては、プロジェクトの build.gradle ファイル内の 1.5.0-release-7641.5.0 に置き換えてください。

鍵とキーストアに異なるパスワードを使用するとエラーになる

バージョン 4.2 以降、Android Studio は JDK 11 で動作するようになりました。この更新により、署名鍵に関連する基本的な動作変更が発生します。

[Build] > [Generate Signed Bundle / APK] に移動して App Bundle または APK のアプリ署名を構成するときに、鍵とキーストアに異なるパスワードを入力すると、次のようなエラーが発生することがあります。

Key was created with errors:
Warning: Different store and Key passwords not supported for PKCS12 Key stores

この問題を回避するには、鍵とキーストアの両方に同じパスワードを入力します。

バージョン 4.2 のインストール後に Android Studio が起動しない

Studio は、以前の .vmoptions をインポートして、JDK 11 によって使用されるガベージ コレクタで動作するようにそれらをサニタイズしようと試みます。この処理が失敗すると、.vmoptions ファイルでカスタム VM オプションを設定した特定のユーザーについて IDE が起動しないことがあります。

この問題を回避するには、.vmoptions でカスタム オプションを(# 文字で)コメントアウトすることをおすすめします。.vmoptions ファイルは以下の場所にあります。

Windows

C:\Users\YourUserName\AppData\<var>[Local|Roaming]</var>\Google\AndroidStudio4.2\studio64.exe.vmoptions

macOS

~/Library/Application Support/Google/AndroidStudio4.2/studio.vmoptions

Linux

~/.config/Google/AndroidStudio4.2/studio64.vmoptions

この回避策を試しても Studio が起動しない場合は、アップグレード後に Studio が起動しないをご覧ください。