it-swarm.com.ru

По-прежнему получаю предупреждение: конфигурация 'compile' устарела и была заменена на 'реализация'

Я заменил каждое вхождение compile на implementation в build.gradle моего проекта, но я все еще получаю это предупреждение:

 enter image description here

Я пытался найти «compile» во всем проекте, но ничего не найдено. Так в чем может быть причина?

283
Rob

Я обновил com.google.gms:google-services с 3.1.1 до 3.2.0, и предупреждение перестало появляться.

buildscript {

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:3.1.0'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files

    classpath 'com.google.gms:google-services:3.2.0'
    }
}
433
Jkrevis

У меня есть одно и то же предупреждение для com.google.gms: google-services.

Решение заключается в том, чтобы обновить classpath com.google.gms: google-services до classpath 'com.google.gms: google-services: 3.2.0' в файле в build.gradle Проект:

 enter image description here

buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:3.1.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
        classpath 'com.google.gms:google-services:3.2.0'
    }
}

allprojects {
    repositories {
        jcenter()
        google()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

В Android Studio verion 3.1 зависимости от Word заменены на Реализацию

зависимости с предупреждением в Android Studio 3.1

dependencies {
            compile fileTree(dir: 'libs', include: ['*.jar'])
            compile 'com.Android.support:appcompat-v7:27.1.0'
            compile 'com.Android.support.constraint:constraint-layout:1.0.2'
            testImplementation 'junit:junit:4.12'
            androidTestImplementation 'com.Android.support.test:runner:1.0.1'
            androidTestImplementation 'com.Android.support.test.espresso:espresso-core:3.0.1'
    }

зависимости OK в Android Studio 3.1

    dependencies {
            implementation fileTree(dir: 'libs', include: ['*.jar'])
            implementation 'com.Android.support:appcompat-v7:27.1.0'
            implementation 'com.Android.support.constraint:constraint-layout:1.0.2'
            testImplementation 'junit:junit:4.12'
            androidTestImplementation 'com.Android.support.test:runner:1.0.1'
            androidTestImplementation 'com.Android.support.test.espresso:espresso-core:3.0.1'

    }

Gradel генерирует Android Studio 3.1 для нового проекта.

Gradel generate by Android Studio 3.1 for new project.

Посетите https://docs.gradle.org/current/userguide/dependency_management_for_Java_projects.html

Для получения дополнительной информации https://docs.gradle.org/current/userguide/declaring_dependencies.html

113
Didier

Я обновил com.google.gms: google-services с 3.2.0 до 3.2.1, и предупреждение перестало появляться.

 buildscript {

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:3.1.1'
        classpath 'com.google.gms:google-services:3.2.1'

    }
}
28
Prateek218

Использование последней версии сервисов gms gms решило ее для меня.

На уровне проекта build.gradle:

buildscript {
    ...
    dependencies {
        classpath 'com.google.gms:google-services:3.2.1'
        ...  
    }
}
21
Hovanes Mosoyan

Откройте файл build.gradle, расположенный здесь: 

 enter image description here

Это старый способ написания библиотек зависимостей (для Gradle версии 2 и ниже):

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile files('libs/volley.jar')
    compile 'com.Android.support:support-v4:21.+'
}

Это новый (правильный) способ импорта зависимостей для Gradle версии 3:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    testImplementation 'junit:junit:4.12'
    implementation files('libs/volley.jar')
    implementation 'com.Android.support:support-v4:21.+'
}
16
Gene

Ответ от Google: https://issuetracker.google.com/issues/74048134

Будет некоторая зависимость, все еще использующая компиляцию, тщательно проверьте зависимости вашего приложения и транзитивные зависимости.

11
quangkid

https://issuetracker.google.com/issues/72479188 указывает, что плагины иногда могут вводить зависимости «компиляции», и именно это вызывает предупреждение. Вероятно, проще всего отметить эту проблему и подождать, пока они не исправят ее, чтобы указать, какие плагины вызывают проблему.

7
Eric

Не нужно убирать строку. Как пишет Jkrevis, обновите com.google.gms: google-services до версии 3.2.0, и предупреждения прекратятся.

6
Tom

В моем случае это вызвано библиотекой Realm, после того как я обновил ее до последней версии (пока что 5.1.0), проблема решена!

Вот рабочий скрипт gradle: 

buildscript {
repositories {
    jcenter()
    google()
}

dependencies {
    classpath 'com.Android.tools.build:gradle:3.1.2'
    classpath "io.realm:realm-gradle-plugin:5.1.0"
    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
    classpath 'com.google.gms:google-services:3.2.1'
  }
}
4
ken

Просто обновление версии google-сервиса у меня не сработало.  

  • Сначала убедитесь, что все ваши зависимости compile заменены на implementation.
  • Обновите все зависимости в вашем проекте. Потому что, если у одной из ваших зависимостей есть compile, ваш проект покажет эту ошибку. Так что обновите все зависимости версии.
3
Khemraj

Я сталкиваюсь с этой проблемой без использования com.google.gms:google-services. Решение, решающее эту проблему, как показано ниже:

  1. проверьте build.gradle файлы всех проектов и модулей. Или просто глобальный поиск по слову Word 'compile', чтобы найти причину этого предупреждения.
  2. если вышеуказанный метод не может устранить это предупреждение, используйте команду CLI, ./gradlew assembleDebug -d > gradle.log
    выведите подробную информацию об отладке в файл с именем gradle.log или любым другим, так как информации слишком много. Затем найдите слово «WARNING», чтобы найти позицию в gradle.log, обычно вы можете найти, какая зависимость или плагин вызывают предупреждение.
2
zhangliang

В моем случае это была старая зависимость, которая использовала компиляцию для транзитивных зависимостей: com.jakewharton.hugo

После удаления из моего gradle это скомпилировано. 

2
PerrierCitror

перейдите к файлу build.gradle на уровне проекта, вы увидите следующие выделенные строки

dependencies {
    classpath 'com.Android.tools.build:gradle:3.1.4'  //place your cursor over here 
    //and hit alt+enter and it will show you the appropriate version to select


    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files

    classpath 'com.google.gms:google-services:4.0.2' //the same as previously
}
2
Rabie Hamza

Обходной путь для решения этой проблемы был для меня, что я использовал более старую версию Gradle, которую можно найти здесь :

Я использовал версию gradle-3.0-rc-1-src, но другие тоже могут работать, хотя, вероятно, она не должна быть новее, чем 3.0-версия.

Сначала распакуйте Zip-файл куда угодно.

Затем перейдите в File -> Settings -> Build, Execution, Deployment -> Gradle и измените настройку на Использовать локальное распределение gradle. После этого убедитесь, что поле Gradle Home указывает на каталог .gradle в каталоге, в который вы только что разархивировали.

Перестройте проект, и все должно быть в порядке.

1
tpn

Просто добавьте из build.gradle из build script

classpath 'com.google.gms:google-services:3.2.0'

и все зависимости "compile" заменить на "implementation"

это сработало от меня.

0
Omae wa mou shindairu

Я попытался изменить google gms services на последний com.google.gms:google-services:3.2.1 в Android Studio 3.0.1, но предупреждение все еще сохраняется.

В соответствии с рекомендациями компилятора я изменил все зависимости compile на implementation и testCompile на testImplementation следующим образом.

dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.Android.support:appcompat-v7:27.1.1'
implementation 'com.Android.support:mediarouter-v7:27.1.1'
implementation 'com.Android.support:design:27.1.1'
implementation 'com.google.firebase:firebase-ads:12.0.1'
implementation 'com.google.firebase:firebase-crash:12.0.1'
implementation 'com.google.firebase:firebase-core:12.0.1'
implementation 'com.google.firebase:firebase-messaging:12.0.1'
implementation 'com.google.firebase:firebase-perf:12.0.1'
implementation 'com.google.firebase:firebase-appindexing:12.0.1'
implementation 'com.Android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}

И, наконец, предупреждение снято!

0
Haileapp

Текущая версия - 4.2.0 :

buildscript {

repositories {
    google()
    jcenter()
}
dependencies {
    classpath 'com.Android.tools.build:gradle:3.4.0'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
    classpath 'com.google.gms:google-services:4.2.0'
}

}

0
xscoder

Вы можете сделать это двумя вариантами:

  1. Добавьте classpath 'com.google.gms: google-services: 3.2.0' в свой проект: build.gradle зависимости И 
  2. Замените ваш модуль: build.gradle в зависимости от компиляции с реализацией И вы не получите никаких предупреждающих сообщений.
0
Jasbin Karki