이 가이드에서는 AGDE 프로젝트에서 build.gradle
파일을 수정하여 Android 스튜디오에서 열 수 있는 방법을 설명합니다. 이 문서는 AGDE 프로젝트를 관리하는 빌드 엔지니어를 주 대상으로 작성되었습니다.
이 가이드 변경 후에는 다음을 실행할 수 있습니다.
- 명령줄 및 Android 스튜디오에서 Gradle로 빌드합니다.
- 다중 ABI APK 및 App Bundle을 빌드합니다.
- Android 스튜디오에서 전체 언어 서비스 지원(예: 정의로 이동)을 사용하여 소스를 수정합니다.
- Android 스튜디오 디버거를 사용하여 네이티브 및 혼합 프로세스를 디버그합니다.
이 AGDE 기능은 Ninja를 빌드 시스템으로 지원하도록 실험용 Android Gradle 플러그인 기능을 기반으로 빌드되었습니다.
프로젝트 수준 build.gradle 파일 수정
Android Gradle 플러그인 버전 7.3.0-alpha02 이상을 참조하도록 프로젝트 수준 build.gradle
을 변경합니다. 예를 들면 다음과 같습니다.
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 스튜디오를 열고 Help/Submit Feedback을 클릭합니다. 해당 버그를 찾을 수 있도록 '맞춤 C/C++ 빌드 시스템'을 언급해 주세요.
- Android 스튜디오를 설치하지 않은 경우 이 링크를 클릭합니다.