שינוי קובצי build.gradle ב-Android Studio

במדריך הזה מוסבר איך לשנות קבצים של build.gradle מפרויקטים של AGDE, אפשר לפתוח אותם ב-Android Studio. מיועד בעיקר למהנדסי בנייה שמנהלים פרויקטים של AGDE.

אחרי השינויים במדריך הזה, תוכלו לבצע את הפעולות הבאות:

  • פיתוח באמצעות Gradle משורת הפקודה ומ-Android Studio.
  • פיתוח חבילות APK ו-App Bundles מרובים של ABI.
  • עריכת מקורות עם תמיכה מלאה בשירות שפה (מעבר להגדרה וכו') ב-Android Studio.
  • אפשר להשתמש בכלי לניפוי באגים ב-Android Studio כדי לנפות באגים בתהליכים מקוריים ומעורבים.

התכונה של AGDE מבוססת על תכונת הפלאגין הניסיונית Android Gradle כדי לתמוך ב-Ninja כמערכת build.

משנים את הקובץ 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 לפרויקט

דוגמה ל-Teapod עם הגרסה העדכנית ביותר בגרסאות של 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 ולוחצים על עזרה/שליחת משוב. להיות חשוב לעיין במאמר "מערכות build מותאמות אישית C/C++" כדי לעזור באיתור הבאג.
  • צריך ללחוץ על הקישור הזה אם Android Studio לא מותקן.