Почему "сторонние сторонние Gradle плагины могут быть причиной", показывая после обновления Gradle до 3.1.0?

После обновления Gradle до com.android.tools.build:gradle:3.1.0 в журнале теперь я вижу:

Папка E:\Work\App\car_android\carapp\построить\генерируемый\источник\kaptKotlin\devRelease

Подключаемые модули сторонних разработчиков Gradle могут быть причиной

Ответ 1

Если вы получаете предупреждение:

Это могут быть сторонние плагины Gradle

на вкладке сборки, похоже, известная проблема с Android Studio v3.1.x.
Согласно этому отчету, это может быть связано с предоставлением мгновенных приложений, но даже удаление этого из конфигурации запуска/отладки, похоже, не устраняет проблему (по крайней мере, не с моей установкой AS v3.1.1).

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

Ответ 2

Это работало в моем проекте! →

Ваш проект build.gradle должен выглядеть следующим образом: введите описание изображения здесь

Примечание. Это может быть немного иначе, если вы не используете Realm и некоторые сервисы Google.

введите описание изображения здесь

  • Теперь, давайте начнем → Перейти к вам build.gradle App

Платформенные модули, ориентированные на Android Обновление экспериментальных мультиплатформенных проектов включает поддержку модулей платформы Android. Эти модули должны применять соответствующий плагин в Gradle build script и использовать общий код из общего модуля:

  • Вы скопируете это внутри своего build.gradle ON THE TOP ADD IT -

Местоположение диагностики Kapt На данный момент kapt, инструмент обработки аннотации Kotlin, может предлагать ссылки на местоположения в исходном коде Kotlin, а не сгенерированные Java-заглушки, поскольку он сообщает об ошибках, возникающих при обработке аннотаций. Вы можете включить эту функцию, добавив эти строки в конструкцию Gradle build script (build.gradle):

apply plugin: 'com.android.application'
apply plugin: 'kotlin-platform-android'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
// ...

2. СЕЙЧАС ДОБАВЛЯЕТ ЭТО:

kapt {
    mapDiagnosticLocations = true
}
dataBinding {
    enabled = true
}

Улучшения плагина IntelliJ IDEA Kotlin 1.2.30 предлагает различные улучшения в плагине IntelliJ IDEA Kotlin, включая улучшения производительности, исправления ошибок и новые проверки и намерения.

Для некоторых проектов это важно: Вы скопируете это внутри своего build.gradle -

 allprojects {
repositories {
    jcenter()
    google()
}

Он будет выглядеть следующим образом

Теперь нам нужно добавить реализации внутри зависимостей {...//} build.gradle:

// Architecture Component - Room
implementation "android.arch.persistence.room:runtime:1.1.0-beta1"
kapt "android.arch.persistence.room:compiler:1.1.0-beta1"

// Lifecyles, LiveData and ViewModel
kapt 'com.android.databinding:compiler:3.1.0'

// ViewModel and LiveData
implementation "android.arch.lifecycle:extensions:1.1.1"

// alternatively, just ViewModel
implementation "android.arch.lifecycle:viewmodel:1.1.1"

// alternatively, just LiveData
implementation "android.arch.lifecycle:livedata:1.1.1"
kapt "android.arch.lifecycle:compiler:1.1.1"

// Room (use 1.1.0-beta1 for latest beta)
implementation "android.arch.persistence.room:runtime:1.0.0"
kapt "android.arch.persistence.room:compiler:1.0.0"

// Paging
implementation "android.arch.paging:runtime:1.0.0-alpha7"

// Test helpers for LiveData
testImplementation "android.arch.core:core-testing:1.1.1"

// Test helpers for Room
testImplementation "android.arch.persistence.room:testing:1.0.0"

* *

  • Очистите проект
  • Построить его
  • Что это!

Дополнительная информация: Сайт Android :) Дайте мне знать, если это сработает! (Если это не сработает, я   попытайтесь помочь вам найти лучший способ)

Ответ 3

Это происходит потому, что обработчик аннотации Kapt использует этот каталог для хранения файлов, созданных Kotlin.

Каталог представляет собой новый сгенерированный исходный набор, так же, как вы можете разделить исходные файлы на src/main/java и src/main/kotlin

Однако плагин Android Gradle не распознает этот каталог как сгенерированный набор источников.

По большей части это абсолютно безопасно, поскольку большинство сторонних процессоров генерируют файлы .Java. Kapt записывает их в каталог build/generated/source/kapt.

Ответ 4

В соответствии с этой проблемой Android Studio "Корневая проблема с Kapt заключается в том, что Kapt resolver в IDEA от JetBrains регистрирует эти папки как" находящиеся в недопустимом пути ". Это неправильное использование API".

По состоянию на 6/11/2018 есть исправление, позволяющее дважды проверять эти сообщения и подавлять их относительно путей, которые действительно действительны.

Ответ 5

Я удаляю две папки app\build\сгенерированные\source\kaptKotlin\debug и app\build\сгенерированные\source\kaptKotlin\release ("debug" и "release") и добавляет в gradle:

kapt {
        mapDiagnosticLocations = true
    }

то проект синхронизируется без проблем.