Измените файлы build.gradle для Android Studio.

В этом руководстве описывается, как изменить файлы build.gradle из проектов AGDE, чтобы их можно было открывать в Android Studio. Он в основном предназначен для инженеров-строителей, управляющих проектами AGDE.

После изменений в этом руководстве вы сможете:

  • Сборка с помощью Gradle из командной строки и Android Studio.
  • Создавайте APK-файлы и пакеты приложений с несколькими ABI.
  • Редактируйте источники с полной поддержкой языковых сервисов (переход к определению и т. д.) в 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'
    }
}

После этого изменения вы по-прежнему сможете создавать проект в Visual Studio. Мы рекомендуем вам попробовать это сейчас, так как перед внесением изменений, приведенных ниже, будет проще выполнить отладку.

Скопируйте run-msbuild.bat в свой проект.

Образец Teapot , поставляемый с последними версиями AGDE, содержит сценарий run-msbuild.bat . Этот сценарий будет вызываться из AGP и отвечает за поиск и вызов MSBuild.

Скопируйте run-msbuild.bat в папку, содержащую файл build.gradle уровня приложения.

Измените файл build.gradle уровня приложения.

Основные цели этого шага — настроить вызов run-msbuild.bat и удалить ссылки на переменные MSBUILD_* .

Установить ндкверсион

Измените ndkVersion на конкретную версию NDK. Например:

  android {
      ndkVersion "22.1.7171670"
  }

Установить минСдкВерсион

Измените 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 и нажмите «Справка/Отправить отзыв» . Обязательно обратитесь к «Пользовательским системам сборки C/C++», чтобы помочь устранить ошибку.
  • Нажмите эту ссылку, если у вас не установлена ​​Android Studio.