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

Вопрос задан: 1 год назад Последняя активность: 7 месяцев назад
up 19 down

Я обновил до 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 = верно

Итак, я взял 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?

3 ответа

Возможно, для Вашего проекта будут необходимы бесплатные векторные карты. На нашем сайте представлены карты для всех стран.

Реклама

up 29 down accepted

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

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

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

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

Вы можете проверить это Ссылка на сайт.

up 3 down

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

up 2 down

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

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

 ./gradlew -Pandroid.debug.obsoleteApi=true

Ошибка 505

Что-то пошло не так

Попробуйте воспользоваться поиском