W tym przewodniku opisujemy, jak zmodyfikować pliki build.gradle
z projektów AGDE, by otwierać je w Android Studio. Przeznaczony głównie dla inżynierów
budowujących, którzy zarządzają projektami AGDE.
Po wprowadzeniu zmian w tym przewodniku:
- Twórz za pomocą Gradle z poziomu wiersza poleceń i Android Studio.
- Twórz pliki APK i pakiety aplikacji zgodne z wieloma interfejsami ABI.
- Edytowanie źródeł z pełną obsługą języka (definicja itp.) w Android Studio.
- Używaj debugerów Android Studio do debugowania procesów natywnych i mieszanych.
Ta funkcja AGDE opiera się na eksperymentalnej wtyczce Androida do obsługi Gradle, która obsługuje Ninja jako system kompilacji.
Modyfikowanie pliku build.gradle na poziomie projektu
Zmień build.gradle
na poziomie projektu, aby odwoływał się do wtyczki Androida do obsługi Gradle w wersji 7.3.0-alfa02 lub nowszej. Na przykład:
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.3.0-alpha02'
}
}
Po tej zmianie nadal będziesz mieć możliwość tworzenia projektu w Visual Studio. Warto zrobić to teraz, ponieważ będzie łatwiej debugować przed wprowadzeniem zmian poniżej.
Skopiuj run-msbuild.bat do projektu
Próbka herbaty dostarczana z najnowszą wersją AGDE zawiera skrypt o nazwie run-msbuild.bat
. Skrypt ten będzie wywoływany z AGP i odpowiada za lokalizowanie i wywoływanie MSBuild.
Skopiuj run-msbuild.bat
do folderu zawierającego plik build.gradle
na poziomie aplikacji.
Modyfikowanie pliku build.gradle
na poziomie aplikacji
Głównym celem tego kroku jest skonfigurowanie wywołania run-msbuild.bat
i usunięcie odwołań do zmiennych MSBUILD_*
.
Ustaw wersję ndkVersion
Zmień wersję ndkVersion
na określoną wersję NDK. Na przykład:
android {
ndkVersion "22.1.7171670"
}
Ustaw parametr minSdkVersion
Zmień minSdkVersion
na konkretną minimalną wersję pakietu SDK. Na przykład:
android {
defaultConfig {
minSdkVersion 30
}
}
Wywołaj run-msbuild.bat
Dodaj sekcję, która będzie wywoływać funkcję
run-msbuild.bat
w pliku rozwiązania w projekcie.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" ] } } }
Usuń wszelkie sposoby wykorzystania znaczników
MSBUILD_JNI_LIBS_SRC_DIR
,MSBUILD_ANDROID_OUTPUT_APK_NAME
iMSBUILD_ANDROID_GRADLE_BUILD_OUTPUT_DIR
.Zwykle można całkowicie usunąć te bloki w pliku
build.gradle
na poziomie aplikacji.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
Opinia
To jest funkcja eksperymentalna, więc będziemy wdzięczni za Twoją opinię. Oto jak go podać:
- Jeśli chcesz podzielić się ogólnymi uwagami i opiniami, możesz dodać komentarz do tego błędu.
- Aby zgłosić błąd, otwórz Android Studio i kliknij Pomoc/Prześlij opinię. Zwróć uwagę na „Niestandardowe systemy kompilacji C/C++”, aby ułatwić nam kierowanie błędu.
- Kliknij ten link, jeśli nie masz zainstalowanego Android Studio.