ПРЕДУПРЕЖДЕНИЕ: 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 голосов
/ 30 июня 2019

В моем случае это было вызвано из gms сервисов 4.3.0.Поэтому мне пришлось изменить его на:

com.google.gms:google-services:4.2.0

Я нашел это, запустив:

gradlew sync -Pandroid.debug.obsoleteApi=true

в терминале.Перейти к просмотру -> окна инструментов -> Терминал в Android Studio.

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

Эта проблема теперь исправлена ​​с обновлением Fabric Gradle версии 1.30.0:

Обновление выпуска: 19 марта 2019

Пожалуйста, смотрите эту ссылку: https://docs.fabric.io/android/changelog.html#march-15-2019

Пожалуйста, обновите вашу зависимость classpath на уровне проекта Gradle:

buildscript {
    // ... repositories, etc. ...

    dependencies {
        // ...other dependencies ...
        classpath 'io.fabric.tools:gradle:1.30.0'
    }
}
0 голосов
/ 18 мая 2019

держать вас в проекте (не в приложении) Bund.gradle код зависимости пути к классам новый

 dependencies {
    classpath 'com.android.tools.build:gradle:3.5.0-beta01'
    classpath 'com.novoda:bintray-release:0.8.1'
    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}
0 голосов
/ 25 сентября 2018

Это предупреждение выдается инструментами сборки по двум причинам.
1. Один из плагинов полагается на Task вместо TaskProvider, мы ничего не можем сделать.
2. Вы настроили использованиезадачи, где он поддерживает TaskProvider.

WARNING: API 'variant.getGenerateBuildConfig()' is obsolete and has been replaced with 'variant.getGenerateBuildConfigProvider()'.
It will be removed at the end of 2019.
For more information, see https://d.android.com/r/tools/task-configuration-avoidance

WARNING: API 'variant.getJavaCompile()' is obsolete and has been replaced with 'variant.getJavaCompileProvider()'.
It will be removed at the end of 2019.
For more information, see https://d.android.com/r/tools/task-configuration-avoidance

WARNING: API 'variant.getMergeResources()' is obsolete and has been replaced with 'variant.getMergeResourcesProvider()'.
It will be removed at the end of 2019.
For more information, see https://d.android.com/r/tools/task-configuration-avoidance

Обратите внимание на фрагменты, как показано ниже, & update.

android {
    <library|application>Variants.all { variant ->
        /* Disable Generating Build config */
        // variant.generateBuildConfig.enabled = true // <- Deprecated
        variant.generateBuildConfigProvider.configure {
            it.enabled = true // Replacement
        }
    }
}

Аналогичным образом найдите значения 'variant.getJavaCompile()' или 'variant.javaCompile', 'variant.getMergeResources()' или 'variant.mergeResources'.Замените, как указано выше.

Дополнительные сведения см. На Избегание при настройке задачи

0 голосов
/ 11 апреля 2019

Обновите плагин Fabric до последней версии в файле Gradle уровня проекта (не на уровне приложения).В моем случае эта строка решила проблему от

classpath 'io.fabric.tools:gradle:1.25.4'

до

classpath 'io.fabric.tools:gradle:1.29.0'
0 голосов
/ 13 июля 2019

Я тоже сталкивался с такой же проблемой.И после некоторого поиска я понял, что предупреждение возникает из-за использования последней версии плагина google-services (версия 4.3.0).Кстати, я использовал этот плагин для функциональности Firebase в моем приложении.Все, что я сделал, это понизил мой плагин 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'
    }
}
0 голосов
/ 17 июля 2019

Измените версию Служб Google с build.gradle:

dependencies {
  classpath 'com.google.gms:google-services:4.2.0'
}
0 голосов
/ 20 января 2019

В моем случае мне пришлось закомментировать плагин com.google.firebase.firebase-crash:

apply plugin: 'com.android.application'
// apply plugin: 'com.google.firebase.firebase-crash' <== this plugin causes the error

Это ошибка, поскольку Android Studio 3.3.0

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

если я удалю эту строку из application gradle:

apply plugin: 'io.fabric'

ошибка больше не будет отображаться.

Ссылочная ссылка github

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

Обновление gradle до gradle: 3.3.0

Задание по умолчанию «сборка» применяется только к обычным вариантам.Также добавьте тестовые варианты.

android.testVariants.all { variant ->
    tasks.getByName('assemble').dependsOn variant.getAssembleProvider()
}

и комментарий примените ткань

//apply plugin: 'io.fabric'
...