این راهنما نحوه تغییر فایلهای build.gradle
را از پروژههای AGDE توضیح میدهد تا بتوانید آنها را در Android Studio باز کنید. این عمدتا برای مهندسان ساختمانی در نظر گرفته شده است که پروژه های AGDE را مدیریت می کنند.
پس از تغییرات در این راهنما، باید بتوانید:
- با Gradle از خط فرمان و اندروید استودیو بسازید.
- APKهای چند ABI و بستههای برنامه بسازید.
- منابع را با پشتیبانی کامل از خدمات زبان (go-to definition و غیره) در Android Studio ویرایش کنید.
- از دیباگرهای Android Studio برای اشکال زدایی فرآیندهای بومی و ترکیبی استفاده کنید.
این ویژگی AGDE بر روی ویژگی آزمایشی پلاگین Android Gradle ساخته شده است تا از Ninja به عنوان یک سیستم ساخت پشتیبانی کند.
فایل 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'
}
}
پس از این تغییر، همچنان باید بتوانید پروژه خود را در ویژوال استودیو بسازید. توصیه می کنیم اکنون آن را امتحان کنید زیرا قبل از انجام تغییرات زیر، اشکال زدایی آسان تر خواهد بود.
run-msbuild.bat را در پروژه خود کپی کنید
نمونه Teapot که با آخرین نسخههای AGDE ارائه میشود دارای اسکریپتی به نام run-msbuild.bat
است. این اسکریپت از AGP فراخوانی می شود و مسئول مکان یابی و فراخوانی MSBuild است.
run-msbuild.bat
در پوشه ای که حاوی فایل build.gradle
سطح برنامه است کپی کنید.
فایل 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" برای کمک به رفع اشکال مراجعه کنید.
- اگر اندروید استودیو را نصب نکرده اید، روی این لینک کلیک کنید.