فایل‌های build.gradle را برای Android Studio تغییر دهید

این راهنما نحوه تغییر فایل‌های 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 را فراخوانی کنید

  1. بخشی را برای فراخوانی 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"
                    ]
               }
           }
       }
    
  2. هرگونه استفاده از 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" برای کمک به رفع اشکال مراجعه کنید.
  • اگر اندروید استودیو را نصب نکرده اید، روی این لینک کلیک کنید.