ПРЕДУПРЕЖДЕНИЕ: API 'option.getJavaCompile ()' устарел и был заменен на 'option.getJavaCompileProvider ()' - PullRequest
0 голосов
/ 23 сентября 2018

Внезапно при синхронизации Gradle я получаю эту ошибку:

ПРЕДУПРЕЖДЕНИЕ: API 'component.getJavaCompile ()' устарел и был заменен на 'variable.getJavaCompileProvider ()'.Он будет удален в конце 2019 года. Для получения дополнительной информации см. https://d.android.com/r/tools/task-configuration-avoidance Затронутые модули: приложение

У меня есть build.gradle для модуля приложения:

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'
apply plugin: 'com.google.gms.google-services'

apply plugin: 'io.fabric'

android {
    compileSdkVersion 28
    buildToolsVersion "28.0.2"
    defaultConfig {
        applicationId "..."
        minSdkVersion 21
        targetSdkVersion 28
        versionCode 1
        versionName "..."
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        versionNameSuffix = version_suffix

        [...]
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

            [...]
        }
        debug {
            [...]
        }
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.2.61"
    implementation 'androidx.appcompat:appcompat:1.0.0-rc02'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation "com.android.support:preference-v7:28.0.0"
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.1.0-alpha4'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'
    implementation 'com.google.android.material:material:1.0.0-rc02'

    [...]
}

Я могу правильно скомпилировать приложение, но это немного напрягает, и, как я вижу, что-то перестанет работать в конце 2019 года. Есть идеи, что это такое и как это решить?

Ответы [ 22 ]

0 голосов
/ 16 января 2019

Я сталкиваюсь с этой проблемой после обновления до 3.3.0

Если вы не делаете, какие состояния ошибки в файле Gradle, это какой-то плагин, который все еще не обновился до более нового API, который вызывает это.Чтобы выяснить, какой плагин это, сделайте следующее (как объяснено в «Лучшая информация отладки при использовании устаревшего API» из объявления 3.3.0 ):

  • Add 'android.debug.obsoleteApi = true ' в ваш gradle.properties файл, в котором будет регистрироваться ошибка с более подробной информацией
  • Попробуйте еще раз и прочитайте подробности журнала.Там будет след "проблемных" плагин
  • Когда вы идентифицируете, попробуйте отключить его и посмотреть, если проблема исчезла, просто чтобы
  • перейти на страницу github плагина и создать проблемукоторый будет содержать подробный журнал и четкое описание, так что вы поможете разработчикам исправить это для всех быстрее
  • будьте терпеливы, пока они исправляют это, или вы исправите это и создадите PR для разработчиков

Надеждаэто помогает другим

0 голосов
/ 17 ноября 2018

Обновление Kotlin ( Плагин и stdLib ) версии до 1.3.1 решило это предупреждение вмое дело.Обновите версию Kotlin во всем проекте, заменив существующую версию Kotlin на:

ext.kotlin_version = '1.3.1'
0 голосов
/ 18 октября 2018

Здесь временный обходной путь. Если вы используете комнату, просто обновитесь до 1.1.0 или выше

implementation "android.arch.persistence.room:runtime:1.1.0"

, это снимает это предупреждение для меня.

0 голосов
/ 10 октября 2018

Вернитесь из classpath 'com.android.tools.build:gradle:3.3.0-alpha13' в classpath 'com.android.tools.build:gradle:3.2.0'

, который работал дляменя

0 голосов
/ 11 июля 2019

Это решило мою проблему. Все, что мне нужно было сделать, это понизить мой плагин google-services в buildscript в файле уровня build.gradle (Project) следующим образом

buildscript{
     dependencies {
        // From =>
        classpath 'com.google.gms:google-services:4.3.0'
        // To =>
        classpath 'com.google.gms:google-services:4.2.0'
        // Add dependency
        classpath 'io.fabric.tools:gradle:1.28.1'
    }
}
0 голосов
/ 29 января 2019

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

android.debug.obsoleteApi=true
0 голосов
/ 12 июля 2019

Перенос вашего проекта на androidX.

Зависимости обновлены до androidX.поэтому, если вы хотите использовать содержимое androidX , перенесите свой проект в androidX.

В Android Studio 3.2 и выше вы можете быстро перенести существующий проект в AndroidX, выбрав Refactor> Migrate to AndroidXиз строки меню.

Понижение зависимостей может исправить вашу проблему на этот раз, но не рекомендуется

0 голосов
/ 03 февраля 2019

Понижение версии Gradle работало для меня:

classpath 'com.android.tools.build:gradle:3.2.0'
0 голосов
/ 15 июля 2019

Это популярный вопрос.Если вы не используете эти методы, решением будет обновление библиотек.Пожалуйста, обновите версию kotlin и все ваши зависимости, такие как fabric , protobuf и т. Д. Если вы уверены, что обновили все, попробуйте спросить авторабиблиотека.

0 голосов
/ 06 февраля 2019

В моем случае

build.gradle(Project)

было

ext.kotlin_version = '1.2.71'

обновлено до

ext.kotlin_version = '1.3.0'

выглядит проблема пока ушла

...