WARNING 2: environment variable “JAVA_HOME” should be defined and should point to a valid JDK (e.g. 主なバグ修正のリストについては、リリース アップデート情報ブログの関連記事をご覧ください。, Android Studio 3.4.1 をサポートするマイナー アップデートです。さまざまなバグの修正とパフォーマンスの改善が含まれています。 Android プログラミング【 カウントダウンタイマー② 】~ 10秒で画面切り替え ~ 2016年12月22日 2017年1月4日 たんたむ 【 注意事項 】 “C:\Program Files\JDK”)

追加情報を表示するには、プロジェクトの gradle.properties ファイルに以下を含めます。, フラグを有効にするには、-Pandroid.debug.obsoleteApi=true をコマンドラインから渡します。, コマンドラインから、機能モジュールでのインストゥルメンテーション テストを実行できます。, 遅延タスク設定: プラグインは Gradle の新しいタスク作成 API を使用して、現在のビルド(または実行タスクグラフにないタスク)の完了に必要でないタスクの初期化と設定を回避するようになりました。たとえば、「release」や「debug」など複数のビルド バリアントがあり、アプリの「debug」バージョンをビルドしている場合、プラグインはアプリの「release」バージョンのタスクの初期化と設定を回避します。, variant.getJavaCompile() など、Variants API の特定の古いメソッドを呼び出すと、タスクの設定が必須になることがあります。ビルドを遅延タスク設定用に最適化するには、代わりに variant.getJavaCompileProvider() などの TaskProvider オブジェクトを返す新しいメソッドを呼び出します。, カスタムビルド タスクを実行する場合は、Gradle の新しいタスク作成 API に対応する方法をご確認ください。, 特定のビルドタイプで useProguard false を設定すると、プラグインは ProGuard の代わりに R8 を使用して、アプリのコードとリソースを圧縮し難読化するようになりました。R8 の詳細については、Android デベロッパー ブログのこちらのブログ投稿をご覧ください。, ライブラリ プロジェクトの R クラス生成の高速化: 以前、Android Gradle プラグインは、プロジェクトの依存関係ごとに R.java ファイルを生成し、アプリの他のクラスと一緒にコンパイルしていました。プラグインは最初に中間の R.java クラスをビルドせずに、アプリのコンパイル済み R クラスを含む JAR を直接生成するようになりました。この最適化によって、ライブラリ サブプロジェクトや依存関係が多数あるプロジェクトのビルド パフォーマンスが大幅に改善され、Android Studio のインデックス処理速度が改善される可能性があります。, Android App Bundle をビルドする際、Android 6.0(API レベル 23)以降を対象とするアプリバンドルから生成された APK には、デフォルトで未圧縮バージョンのネイティブ ライブラリが含まれるようになりました。この最適化によって、デバイスがライブラリのコピーを作成する必要がなくなるため、アプリのディスク上のサイズが小さくなります。この最適化を無効にする場合は、gradle.properties ファイルに次の行を追加します。, シングル バリアント プロジェクト同期: ビルド設定とプロジェクトを同期することは、プロジェクトの構造を Android Studio に認識させる重要なステップです。大規模なプロジェクトでは、この処理に時間がかかることがあります。プロジェクトで複数のビルド バリアントを使用している場合は、現在選択しているバリアントに限定することで、プロジェクトの同期を最適化できます。, この最適化を有効にするには、Android Studio 3.3 以降と、Android Gradle プラグイン 3.3.0 以降を使用する必要があります。要件を満たすと、プロジェクトの同期時に、この最適化を有効にするか尋ねるプロンプトが表示されます。また、新しいプロジェクトの場合、デフォルトで最適化が有効になっています。, 手動でこの最適化を有効にするには、[File] > [Settings] > [Experimental] > [Gradle](Mac の場合は [Android Studio] > [Preferences] > [Experimental] > [Gradle])をクリックして、[Only sync the active variant] チェックボックスをオンにします。, 注: この最適化機能は、Java 言語と C++ 言語を使用したプロジェクトを完全にサポートしており、Kotlin にも一部対応しています。Kotlin コンテンツを含むプロジェクトでこの最適化を有効にすると、内部で全バリアントを使用するように、Gradle 同期がフォールバックします。, 不足している SDK パッケージの自動ダウンロード: この機能は、NDK をサポートするように拡張されました。詳細については、不足しているパッケージの Gradle での自動ダウンロードをご覧ください。, Android Gradle プラグイン 3.3.0 で修正される問題は、次のとおりです。, このアップデートにより、SDK Build Tools のバージョンを指定する必要がなくなりました。Android Gradle プラグインはデフォルトでバージョン 28.0.3 を使用します。, Android App Bundle のビルドのサポート: アプリバンドルは新しいアップロード形式で、アプリのコンパイル済みコードとリソースはすべてここに含まれますが、APK の生成と署名は Google Play ストアで行います。デベロッパー側では複数の APK を生成、署名、管理する必要がなくなり、ユーザー側ではサイズが削減されデバイスに合わせて最適化されたダウンロードを行えます。詳細については、Android App Bundle の概要をご覧ください。, アノテーション プロセッサ使用時の増分ビルド速度改善のサポート: AnnotationProcessorOptionsDSL で CommandLineArgumentProvider を拡張しました。これによりユーザーやアノテーション プロセッサ作成者は、増分ビルド プロパティ型のアノテーションを使用してプロセッサの引数にアノテーションを付けられます。このようなアノテーションを使用すると、増分ビルドやキャッシュ済みクリーンビルドの正確性とパフォーマンスが改善されます。詳細については、アノテーション プロセッサへの引数の指定をご覧ください。, AndroidX 用移行ツール: Android 3.2 以降で Android Gradle プラグイン 3.2.0 を使用している場合、メニューバーから [Refactor] > [Migrate to AndroidX] を選択することで、プロジェクトのローカル依存関係と Maven 依存関係を移行して新しい AndroidX ライブラリを使用できます。この移行ツールを使用すると、gradle.properties ファイルで次のフラグも true に設定されます。, 新しいコード圧縮ツール R8: R8 はコードの圧縮と難読化用の新しいツールで、ProGuard の後継です。R8 のプレビュー版の使用を開始するには、プロジェクトの gradle.properties ファイルに次の行を追加します。, AAPT2 は Google の Maven リポジトリに移動しました。AAPT2 を使用するには、下記のように、build.gradle ファイル内で google() 依存関係を指定する必要があります。, ネイティブの multidex がデフォルトで有効になりました。以前のバージョンの Android Studio では、Android API レベル 21 以上を搭載しているデバイスにアプリのデバッグ バージョンをデプロイしたときに、ネイティブ multidex が有効になっていました。今回のリリースでは、デバイスへのデプロイであるかリリース用 APK の作成であるかにかかわらず、minSdkVersion=21 以上に設定されているすべてのモジュールに対して、Android Plugin for Gradle がネイティブ multidex を有効にします。, プラグインの最小バージョンが protobuf プラグイン(0.8.6)、Kotlin プラグイン(1.2.50)、Crashlytics プラグイン(1.25.4)になりました。, 機能モジュール プラグイン com.android.feature では、モジュール名の指定時に英数字とアンダースコアのみを使用するようになりました。たとえば機能モジュール名にダッシュが含まれていると、ビルドエラーが発生します。この動作は、動的機能プラグインの動作と同じです。, Android Studio は、D8 という新しい DEX コンパイラをデフォルトで使用するようになりました。DEX コンパイルは、.class バイトコードを Android ランタイム(古いバージョンの Android では Dalvik)用の .dex バイトコードに変換する処理です。DX という以前のコンパイラと比較すると、D8 はコンパイルが高速で、出力される DEX ファイルのサイズが小さく、しかもアプリのランタイム パフォーマンスは同等以上です。, D8 によって日々のアプリ開発ワークフローが変わることはありませんが、新しいコンパイラに関連する問題が発生した場合は、バグを報告してください。プロジェクトの gradle.properties ファイルで次のように指定すると、D8 を一時的に無効にして DX を使用できます。, Java 8 言語機能を使用しているプロジェクトの場合、デフォルトで増分 desugar が有効になってます。無効にするには、プロジェクトの gradle.properties ファイルで次のように指定します。, プレビュー ユーザー: すでに D8 のプレビュー版を使用している場合、JDK ではなく、SDK ビルドツールに含まれるライブラリに対してコンパイルされるようになりました。そのため、JDK には存在するが SDK ビルドツール ライブラリには存在しない API にアクセスすると、コンパイル エラーが発生します。, それぞれが異なる ABI をターゲットとする複数の APK を作成する場合、プラグインで、mips、mips64、armeabi の各 ABI 用の APK がデフォルトで生成されなくなりました。, 各 ABI をターゲットとする APK を作成するには、NDK r16b 以前を使用して、下記のように build.gradle ファイル内で対象 ABI を指定する必要があります。, Android Instant App 用に設定 APK を作成するとき、デフォルトで言語設定の分割がルートの言語によってグループ化されるようになりました。たとえば、アプリに zh-TW ロケールや zh-CN ロケールのリソースが含まれている場合、Gradle はそれらのリソースを zh 言語設定分割にパッケージ化します。この動作は、次のように include プロパティを使用して独自のグループを定義することで、オーバーライドできます。, Android プラグインのビルド キャッシュが、30 日以上経過したキャッシュ エントリを削除するようになりました。, resConfig に "auto" を渡しても、APK にパッケージ化する文字列リソースが自動的に選択されなくなりました。引き続き "auto" を使用する場合、プラグインはアプリと依存関係で提供されるすべての文字列リソースをパッケージ化します。そのため、プラグインを APK にパッケージ化する各ロケールを指定する必要があります。, ローカル モジュールはアプリのテスト APK に依存できないため、androidTestImplementation の代わりに androidTestApi コンフィグレーションを使用してインストゥルメント化テストに依存関係を追加すると、Gradle は次の警告を発行します。, Android Gradle プラグイン 3.0.0 には、大規模プロジェクトのパフォーマンスの問題に対処することを目的とした、さまざまな変更が含まれています。, たとえば、約 130 個のモジュールと多数の外部依存関係を持つ(ただしコードやリソースはない)サンプル スケルトン プロジェクトでは、次のようなパフォーマンス改善が得られます。, これらの変更の中には、既存のビルドが失敗するものもあります。そのため、新しいプラグインを使用する前に、プロジェクトを移行する労力を考慮する必要があります。, 上記のパフォーマンス改善が見られない場合は、Gradle Profiler を使用したビルドのトレースを含めてバグを報告してください。, Android Studio 3.0.1 をサポートするマイナー アップデートです。全般的なバグの修正とパフォーマンスの改善が含まれています。, 注: ライブラリ モジュールの場合、マージされたアセットに依存関係のアセットは含まれません(問題 #65550419 参照)。, Android Studio 2.3.3 との互換性を追加するマイナー アップデートです。, Android Studio 2.3.2 との互換性を追加するマイナー アップデートです。, Android プラグイン 2.3.0 のマイナー アップデートです。一部の物理 Android デバイスが Instant Run で正常に動作しなかった問題を修正しました(問題 #235879 参照)。, コンパイル時にアノテーション プロセッサを適用するが APK に含めないという場合は、annotationProcessor 依存関係スコープを使用します。, 設定可能なパラメータのリストについては、コマンドラインから次のコマンドを実行します。, このアップデートには、Gradle 2.14.1 以降が必要です。Gradle 2.14.1 には、パフォーマンスの改善、新機能、重要なセキュリティ修正が含まれています。詳細については、Gradle リリースノートをご覧ください。, 注: Instant Run は、現段階では Jack と併用できません。そのため、新しいツールチェーンの使用中は無効になります。N Preview 向けに開発していて、サポートされている Java 8 言語機能を使用する場合に限り、Jack を使用する必要があります。, 個々の外部 VM プロセスではなくビルドプロセス内で dex を行う、プロセス内 dex のサポートを追加しました。これにより、増分ビルドが高速化されるだけでなく、フルビルドも高速化されます。Gradle デーモンの最大ヒープサイズが 2,048 MB 以上に設定されたプロジェクトでは、この機能がデフォルトで有効になります。そのためには、プロジェクトの gradle.properties ファイルに次の行を追加します。, モジュール レベルの build.gradle ファイルで javaMaxHeapSize の値を定義した場合、org.gradle.jvmargs を javaMaxHeapSize + 1,024 MB の値に設定する必要があります。たとえば、javaMaxHeapSize を「2048m」に設定した場合、プロジェクトの gradle.properties ファイルに次の行を追加する必要があります。, プロセス内 dex を無効にするには、モジュール レベルの build.gradle ファイルに次のコードを追加します。, 注: Android キーストア プロバイダは、Android 6.0(API レベル 23)以降の DSA キーをサポートしなくなりました。, Android Plugin for Gradle リビジョン 1.5.0(2015 年 11 月), Android Plugin for Gradle リビジョン 1.3.1(2015 年 8 月), Android Plugin for Gradle リビジョン 1.3.0(2015 年 7 月), Android テストでは、すでにマルチフレーバーのソースフォルダが認識されています。, 注: テスト APK モジュールはプロダクト フレーバーをサポートせず、1 つのバリアントのみをターゲットにできます。また、Jacoco はまだサポートされていません。, Android Plugin for Gradle リビジョン 1.2.0(2015 年 4 月), Android Plugin for Gradle リビジョン 1.1.3(2015 年 3 月), Android Plugin for Gradle バージョン 1.1.2(2015 年 2 月), Android Plugin for Gradle バージョン 1.1.1(2015 年 2 月), Android Plugin for Gradle リビジョン 1.1.0(2015 年 2 月), 注: 現在、テスト専用の依存関係は Jack(Java Android Compiler Kit)と互換性がありません。, 注: これらのスコープは AAR(Android ARchive)パッケージと互換性がなく、AAR パッケージによるビルドは失敗します。, Android Plugin for Gradle リビジョン 1.0.1(2015 年 1 月), 注: このバージョンの Android Plugin for Gradle は、Gradle 2.4 以降と互換性がありません。, Android Plugin for Gradle リビジョン 1.0.0(2014 年 12 月). WARNING: start “bin\studio.exe” instead of “bin\studio64.exe” if you only have 32 bit JDK installed.

主なバグ修正のリストについては、リリース アップデート情報ブログの関連記事をご覧ください。, Android Studio 3.3.1 をサポートするマイナー アップデートです。さまざまなバグの修正とパフォーマンスの改善が含まれています。, クラスパス同期の改善: ランタイム クラスパスやコンパイル クラスパスの依存関係を解決する際、Android Gradle プラグインは、複数のクラスパスにまたがって現れる依存関係に関し、それ以降の特定のバージョン競合を修正しようとします。, たとえば、ランタイム クラスパスにライブラリ A バージョン 2.0 が含まれ、コンパイル クラスパスにライブラリ A バージョン 1.0 が含まれている場合、プラグインはコンパイル クラスパスへの依存関係を自動的にライブラリ A バージョン 2.0 にアップデートして、エラーを回避します。, ただし、ランタイム クラスパスにライブラリ A バージョン 1.0 が含まれ、コンパイル クラスパスにライブラリ A バージョン 2.0 が含まれている場合、プラグインはコンパイル クラスパスの依存関係をライブラリ A バージョン 1.0 にダウングレードしないため、エラーが発生します。詳細については、クラスパス間の競合の修正をご覧ください。, アノテーション プロセッサ使用時の増分 Java コンパイルの改善: このアップデートにより、アノテーション プロセッサ使用時の増分 Java コンパイルのサポートが改善され、ビルド時間が短縮されます。, Kapt を使用しないプロジェクト(Java のみのプロジェクト): 使用するすべてのアノテーション プロセッサが増分アノテーション処理をサポートしている場合、増分 Java コンパイルはデフォルトで有効になります。増分アノテーション プロセッサの採用状況を確認するには、Gradle の問題 5277 をご覧ください。, ただし、1 つ以上のアノテーション プロセッサが増分ビルドをサポートしていない場合、増分 Java コンパイルは有効になりません。代わりに、gradle.properties ファイルで次のフラグを指定できます。, このフラグを指定すると、Android Gradle プラグインは別のタスクでアノテーション プロセッサを実行し、Java コンパイル タスクを段階的に実行できます。, 古い API を使用する場合のデバッグ情報の改善: プラグインは、サポートされなくなった API の使用を検出したとき、その API が使用されている場所の特定に役立つ、より詳細な情報を提供できるようになりました。 主なバグ修正のリストについては、リリース アップデート情報ブログの関連記事をご覧ください。, gradle.properties ファイルで android.databinding.incremental=true を設定すると、Data Binding アノテーション プロセッサは増分アノテーション処理をサポートします。この最適化により、増分ビルドのパフォーマンスが向上しています。最適化されたアノテーション プロセッサの完全なリストについては、増分アノテーション プロセッサの表をご覧ください。, また、KAPT 1.3.30 以降でも、増分アノテーション プロセッサがサポートされます。これは、gradle.properties ファイルに kapt.incremental.apt=true を追加することで有効にできます。, includeAndroidResources を true に設定して単体テストで Android リソース、アセット、マニフェストを使用できるようにすると、Android Gradle プラグインは、絶対パスを含むテスト構成ファイルを生成し、キャッシュの再配置を中断します。相対パスを使用してテスト構成を生成するように指定すると、AndroidUnitTest タスクは完全にキャッシュ可能になります。そのためには、gradle.properties ファイルに次の行を追加します。, Kotlin Gradle プラグイン 1.3.31 以前を使用すると、プロジェクトのビルドや同期の際に次の警告が表示されることがあります。, この問題を解決するには、プラグインをバージョン 1.3.40 以降にアップグレードしてください。, Gradle 5.1.1 以降。

主なバグ修正のリストについては、リリース アップデート情報ブログの関連記事をご覧ください。, Android Studio 3.5.1 をサポートするマイナー アップデートです。さまざまなバグの修正とパフォーマンスの改善が含まれています。 AAPT2 の使用中に問題が発生した場合は、, 特定の Java 8 言語機能と Java 8 ライブラリを使用するためのビルトイン サポート。, 次のように、外部のネイティブ ビルド プロジェクトの出力ディレクトリを変更できるようになりました。, Android プラグイン 3.0.0 では特定の API が削除されるため、その API を使用するとビルドが失敗します。たとえば、Variants API を使用して, Android プラグインは、外部の CMake プロジェクトで設定する実行可能ターゲットを自動的にビルドするようになりました。, パフォーマンスの改善と新機能が含まれる Gradle 3.3 を使用します。詳細については、, 試験運用版のビルド キャッシュ(以前のバージョンのプラグインに含まれるもの)を使用している場合、, パフォーマンスの改善と新機能が含まれる Gradle 2.14.1 を使用します。また、Gradle 使用時のローカル権限昇格を可能にするセキュリティ脆弱性を修正しました。詳細については、, 新しい試験運用版のキャッシュ機能により、Gradle では、事前 DEX 変換済みバージョンのライブラリを pre-dex し、保存し、再利用することで、ビルド時間を短縮できます。この試験運用版機能の使用方法について詳しくは、, multidex ビルドでは、ProGuard ルールを使用して、Gradle でアプリのメインの, Gradle デーモンのヒープサイズが 1.5 GB 以上の場合、Jack はデフォルトで Gradle と同じプロセスで実行されるようになりました。デーモンのヒープサイズを調整するには、, N Developer Preview、JDK 8、Jack ツールチェーンを使用した, 開発中のコンパイル時間を短縮するために、増分 Java コンパイルのデフォルト サポートが追加されました。これは、ソースのうち変更された部分や再コンパイルが必要な部分だけを再コンパイルすることで行われます。この機能を無効にするには、モジュール レベルの, バイトコード インジェクションをサポートし、エミュレータや実機で実行中のアプリにコードとリソースのアップデートをプッシュすることで、, アプリが実行されていない場合についても、増分ビルドのサポートを追加しました。 この最適化を活かすには、まず, デフォルトで有効になった AAPT2 を使用する増分リソース処理を改善しました。 で表示されるダイアログには、Source directoryはあるがModule nameは無くなっている。, OpenCVをインポートするとき、指定するフォルダがsdkとなっているため、 サードパーティ プラグインの実行順序は、サードパーティ プラグインによって変換が追加される順序と一致します。サードパーティ プラグインの開発者は、API を介して変換の実行順序を制御できません。, テスト プロジェクトで使用できるように MultiDex のサポートを改善し、テストが自動的に, Gradle ビルドが非同期タスクを呼び出し、ワーカー プロセスで障害が発生した場合に、Gradle ビルドが適切に失敗し、根本的なエラー原因を報告する機能を追加しました。, 複数のアプリケーション バイナリ インターフェース(ABI)が含まれるバリアントで特定の ABI を設定するためのサポートを追加しました。, Android 5.0(API レベル 20)以降を実行しているデバイスで、APK 名にスペースが含まれているとインストールが失敗する問題を修正しました。, Android Asset Packaging Tool(AAPT)のエラー出力に関連する、さまざまな問題を修正しました。, JaCoCo 増分インストゥルメンテーションのサポートを追加し、増分ビルドを高速化しました。Android Plugin for Gradle は、JaCoCo instrumenter を直接呼び出します。新しいバージョンの JaCoCo instrumenter を強制するには、ビルド スクリプトの依存関係として追加する必要があります。, 下位互換性のために、ビルド時に PNG を生成するためのベクター型ドローアブルのサポートを追加しました。