このガイドでは、Android Studio で AGDE プロジェクトを開くために build.gradle
ファイルを変更する方法について説明します。主な対象読者は、AGDE プロジェクトを管理するビルド エンジニアです。
このガイドに沿って変更を行うと、次のことが可能になります。
- コマンドラインと Android Studio から Gradle でビルドを行う。
- マルチ ABI APK と App Bundle をビルドする。
- 言語サービスを完全にサポートするソース(go-to 定義など)を Android Studio で編集する。
- Android Studio デバッガを使用して、ネイティブ プロセスと混合プロセスをデバッグする。
この AGDE 機能は、ビルドシステムとしての Ninja をサポートする試験運用版の Android Gradle プラグイン機能を基にして構築されています。
プロジェクト レベルの build.gradle ファイルを変更する
プロジェクト レベルの build.gradle
を変更し、Android Gradle プラグイン バージョン 7.3.0-alpha02 以降を参照するようにします。次に例を示します。
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.3.0-alpha02'
}
}
変更後も、Visual Studio でプロジェクトをビルドできます。下記の変更を行う前のほうがデバッグが容易になるため、今すぐこの変更をお試しください。
run-msbuild.bat をプロジェクトにコピーする
最新バージョンの AGDE に同梱されている Teapot サンプルには、run-msbuild.bat
というスクリプトが含まれています。このスクリプトは AGP から呼び出され、MSBuild の検出と呼び出しを行います。
アプリレベルの build.gradle
ファイルを含むフォルダに run-msbuild.bat
をコピーします。
アプリレベルの build.gradle
ファイルを変更する
このステップの主な目的は、run-msbuild.bat
の呼び出しを構成し、MSBUILD_*
変数への参照を削除することです。
ndkVersion を設定する
ndkVersion
を特定の NDK バージョンに変更します。次に例を示します。
android {
ndkVersion "22.1.7171670"
}
minSdkVersion を設定する
minSdkVersion
を特定の最小 SDK バージョンに変更します。次に例を示します。
android {
defaultConfig {
minSdkVersion 30
}
}
run-msbuild.bat を呼び出す
プロジェクトのソリューション ファイルに
run-msbuild.bat
を呼び出すセクションを追加します。android { defaultConfig { externalNativeBuild { experimentalProperties["ninja.abiFilters"] = [ "x86", "arm64-v8a" ] experimentalProperties["ninja.path"] = "Teapot.sln" experimentalProperties["ninja.configure"] = "run-msbuild" experimentalProperties["ninja.arguments"] = [ "\${ndk.moduleMakeFile}", "-p:Configuration=\${ndk.variantName}", "-p:Platform=Android-\${ndk.abi}", "-p:NinjaBuildLocation=\${ndk.buildRoot}", "-p:NinjaProject=GameApplication", "-p:RequireAndroidNdkVersion=\${ndk.moduleNdkVersion}", "-p:RequireMinSdkVersion=\${ndk.minPlatform}", "-t:GenerateBuildNinja" ] } } }
MSBUILD_JNI_LIBS_SRC_DIR
、MSBUILD_ANDROID_OUTPUT_APK_NAME
、MSBUILD_ANDROID_GRADLE_BUILD_OUTPUT_DIR
を使用している箇所をすべて削除します。通常は、アプリレベルの
build.gradle
ファイルにある次のブロックを完全に削除できます。sourceSets { main { jniLibs.srcDirs = [MSBUILD_JNI_LIBS_SRC_DIR] } } applicationVariants.all { variant -> variant.outputs.all { outputFileName = MSBUILD_ANDROID_OUTPUT_APK_NAME } } buildDir = MSBUILD_ANDROID_GRADLE_BUILD_OUTPUT_DIR
フィードバック
この機能は試験運用版であるため、フィードバックをお待ちしております。フィードバックをお寄せいただく方法は次のとおりです。
- 一般的なご意見やご要望については、こちらのバグにコメントを追加してください。
- バグを報告するには、Android Studio を開いて [Help] > [Submit Feedback] をクリックしてください。バグが適切なチームに届くようにするため、「Custom C/C++ Build Systems」と記載してください。
- Android Studio をインストールしていない場合は、このリンクをクリックしてください。