Android Gradle - где добавить "android.debug.obsoleteApi = true" - программирование

Android Gradle - где добавить "android.debug.obsoleteApi = true"

Я обновился до AndroidStudio 3.3, которая теперь выдает предупреждение об устаревших библиотеках:

ВНИМАНИЕ: API 'option.getExternalNativeBuildTasks()' устарел и был заменен на "variable.getExternalNativeBuildProviders()". Это будет удален в конце 2019 года. Для получения дополнительной информации см. https://d.android.com/r/tools/task-configuration-avoidance. к определите, что вызывает option.getExternalNativeBuildTasks(), используйте -Pandroid.debug.obsoleteApi = true в командной строке для отображения трассировки стека. Затронутые модули: приложение

На их веб-сайте представлена дополнительная информация:

https://developer.android.com/studio/releases/gradle-plugin?utm_source=android-studio#behavior_changes

но я не совсем понимаю это Они говорят:

Чтобы увидеть дополнительную информацию, вам необходимо включить в Файл проекта gradle.properties:

android.debug.obsoleteApi=true

Поэтому я взял build.gradle, помеченный как (Project: [мой проект])

Документ выглядит так:

buildscript {
    ext.kotlin_version = '1.3.10'
    repositories {
        jcenter()
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.0'
        classpath 'com.google.gms:google-services:4.0.1'
        classpath 'com.github.triplet.gradle:play-publisher:1.1.5'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven {
            url "https://jitpack.io"
        }
        mavenCentral()
    }
}

project.ext.preDexLibs = !project.hasProperty('disablePreDex')

subprojects {
    project.plugins.whenPluginAdded { plugin ->
        if ("com.android.build.gradle.AppPlugin" == plugin.class.name) {
            project.android.dexOptions.preDexLibraries = rootProject.ext.preDexLibs
        } else if ("com.android.build.gradle.LibraryPlugin" == plugin.class.name) {
            project.android.dexOptions.preDexLibraries = rootProject.ext.preDexLibs
        }
    }
}
repositories {
    mavenCentral()
}

Тем не менее, я не понимаю, где я должен добавить эту строку сейчас. И независимо от того, где я это поместил, я всегда получаю сообщение об ошибке.

Например. при записи прямо в первой строке:

Не удалось получить неизвестное свойство 'android' для корневого проекта [мой проект] типа org.gradle.api.Project.

Так, где это должно быть добавлено? Или я смешиваю определения "Project" и "app" для файлов Gradle?

4b9b3361

Ответ 1

Вам нужно поместить его в файл gradle.properties, который присутствует на уровне проекта, вне папки приложения , а не в файле build.gradle, который вы сейчас пытаетесь сделать.

Из документации разработчика Android

Улучшение отладочной информации при использовании устаревшего API: когда плагин обнаруживает, что вы используете API, который больше не поддерживается, он теперь может предоставить более подробную информацию, чтобы помочь вам определить, где используется этот API. Чтобы просмотреть дополнительную информацию, вам необходимо включить в файл проекта gradle.properties следующее:

android.debug.obsoleteApi = истина
Вы также можете включить флаг, передав -Pandroid.debug.obsoleteApi = true из командной строки.

Вы можете проверить эту ссылку.

Ответ 2

Как указано в сообщении об ошибке, вы должны добавить это в файл gradle.properties а не в любой из ваших файлов build.gradle

Ответ 3

Самый простой способ сделать это - в терминале в корне проекта Android.

Выполните следующую команду:

 ./gradlew -Pandroid.debug.obsoleteApi=true