Сторонние плагины Gradle могут быть причиной

После обновления до Android Studio 3.1 я получил следующее сообщение об ошибке:

Сторонние плагины Gradle могут быть причиной

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

Соответствующие части из файлов Gradle:

Это build.gradle моего проекта

buildscript {
    ext {
        kotlin_version = '1.2.31'
        anko_version = '0.10.4'
        room_version = '1.0.0'
        support_version = '27.1.0'
        firebase_version = '12.0.0'
        gms_version = '12.0.0'
    }

    repositories {
        google()
        jcenter()
        maven { url 'https://dl.bintray.com/kotlin/kotlin-dev' }
        maven { url 'https://maven.fabric.io/public' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()
        maven { url "https://jitpack.io" }
        maven { url 'https://dl.bintray.com/kotlin/kotlin-dev' }
    }
}

А вот файл build.gradle моего приложения:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'

android {
    compileSdkVersion 27
    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

согласно Issuesetracker.google.com/issues/74537216 эта проблема исправлена ​​в AS3.2

Angel Koh 24.09.2018 10:30
Build> Rebuild Project работал у меня
Zohab Ali 10.10.2018 22:46
133
2
35 178
17
Перейти к ответу Данный вопрос помечен как решенный

Ответы 17

Вот несколько подходов к решению этой проблемы в моем случае:

First of all update your android gradle plugin version from project build gradle file and then update your gradle version from gradle properties.

Finally update your kotlin version(Mandatory) to kotlin_version = '1.2.30' or later from project build gradle file.

Теперь попробуйте очистить свой проект и собрать. Вопрос должен быть решен. Каждый раз после сборки, если вы строите снова, вероятно, проблема возникнет снова, поэтому просто очистите свой проект еще раз, а затем выполните сборку.

Попробуйте удалить Instant run из настроек, и gradle будет хорошо.

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

Ответ принят как подходящий

Чтобы решить эту проблему, УдалитьInstant App Provision из «Run Configurations» и оставьте только Gradle-Aware Make.

Run -> Edit Configurations..

My Run/Debug configurations after successful build

У меня есть AndroidStudio 3.1, плагин Gradle 3.1.0 и версия библиотеки Kotlin 1.2.30.

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

humazed 29.03.2018 18:55

и почему-то после удаления Instant App Provisions всегда возвращается на место.

humazed 29.03.2018 18:59

Сработало для меня, но я также хотел бы знать, в чем проблема. Кто-нибудь подавал в Google жалобу на непонятное предупреждающее сообщение?

AutonomousApps 02.04.2018 00:33

Я создал проблему в системе отслеживания ошибок, чтобы улучшить предупреждающее сообщение: Issuesetracker.google.com/issues/77356844

AutonomousApps 02.04.2018 00:39

@PeterSamokhin, можете ли вы подтвердить, что изменение применяется? У меня тоже была эта проблема, и Instant App Provisions продолжает появляться всякий раз, когда создается новое окно AS, несмотря на применение изменений и обновление всех конфигураций запуска по умолчанию.

Allan W 09.04.2018 08:11

@AllanW очистил локальные кеши Gradle (~/.gradle), все кеши проекта, все файлы IDE (/.idea/, *.iml), удалил Instant App Provisions, заменил kotlin-stdlib-jre7 на kotlin-stdlib, попробовал Invalidate & restart. И все еще нет смысла

Peter Samokhin 09.04.2018 08:42

@PeterSamokhin попробуйте сделать кеш недействительным и перезапустить (в файлах), и если это не сработает, попробуйте повторно импортировать проект снова, а не открывать последний проект.

Allan W 09.04.2018 08:44

Еще один тест, который я сделал, - это запустить сборку на таком CI, как Travis. Вы также можете попробовать запустить команду gradle через командную строку, чтобы убедиться, что проблема связана со студией Android.

Allan W 09.04.2018 08:45

@AllanW попытался собрать и запустить с помощью gradle, и все было в порядке. Пытался реимпорт (клонировать из git), тоже не помогает.

Peter Samokhin 09.04.2018 08:58

Это отключает мгновенный запуск?

Caleb_Allen 10.05.2018 19:25

@Caleb_Allen нет, но все равно никто не использует мгновенный запуск. Это для «мгновенных приложений», а не для мгновенного запуска

Tim 06.06.2018 10:01

Для тех, кто продолжает возвращаться (например, @humazed), я нашел исправление: сначала снова перейдите на Run > Edit Configurations. Затем перейдите к Edit Defaults, нажав кнопку со значком гаечного ключа вверху. Выберите Android App и оставьте только Gradle-aware Make, как раньше. Хит применить.

b_yng 04.07.2018 03:04

Если вы все еще сталкиваетесь с этой проблемой, похоже, она была исправлена, начиная с AS 3.2 beta1: androidstudio.googleblog.com/2018/06/… (см. «Android Studio выдавала лишние предупреждения о папках, созданных kapt»).

spuente 25.07.2018 02:51

Программирование под Android с каждым днем ​​становится все более и более нелепым.

Iman Akbari 28.08.2018 15:45

Что устранило проблему для меня:

  • Измените версию плагина gradle на 3.1.0
  • Измените версию Kotlin на 1.2.30
  • Затем студия Android изменила оболочку gradle на версию 4.4.
  • Тогда студия Android заявила, что используемая версия инструментов сборки была 27.0.3 и что я должен изменить его на 27.0.3, поэтому я также изменил целевой SDK на 27
  • Я добавил это в свой gradle.build:

    kapt {
         generateStubs = true
     }
    

Я надеюсь, что это помогает

Вот несколько шагов, которые я выполнил. В моем случае проблема решена!

Модули платформы для Android В обновлении функции экспериментальных мультиплатформенных проектов добавлена ​​поддержка модулей платформы Android. Эти модули должны применять соответствующий плагин в скрипте сборки Gradle и могут использовать общий код из общего модуля:

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

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

kapt {
    mapDiagnosticLocations = true
}

Добавь это:

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

Не забывайте следующее:

// 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"
  1. Очистите свой проект

  2. Собери и готово!

Добавьте все это, очистите свой проект, соберите и все! :) Сообщите мне, если это сработает! (Если у вас не работает, я помогу вам с другим решением)

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

Если вы дадите голосование, объясните, почему

Добавление строки mapDiagnosticLocations = true в конфигурацию kapt работает - ну, по крайней мере, иногда: /

kuhnroyal 08.05.2018 13:18

@kuhnroyal Я ценю ваш отзыв! Хорошего дня, я продолжаю искать лучшее решение

Cristofer 08.05.2018 16:05

Вот несколько шагов, которые я выполнил, и в моем случае проблема была решена.

  1. Прежде всего, установите версию плагина kotlin до «1.2.31» и обновите ее в файле build.gradle, как показано ниже.

dependencies { classpath 'com.android.tools.build:gradle:3.1.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$1.2.31" }

  1. Чистый проект.

  2. Наконец, перестройте проект.

Что ж, я обнаружил, что это из-за apply plugin: 'kotlin-kapt' ,, если вы удалите эту строку в build.gradle (app), вы успешно выполните сборку ...

Понятия не имею, почему этот плагин выдает эти предупреждения.

в android studio v3.1.2 произошла ошибка:

Folder D:\AndroidProjects\app\build\generated\source\kaptKotlin\debug
Folder D:\AndroidProjects\app\build\generated\source\kaptKotlin\release
3rd-party Gradle plug-ins may be the cause

поскольку dataBinding использует apply plugin: 'kotlin-kapt', поэтому добавьте

kapt {
    generateStubs = true
}
  1. Измените версию плагина gradle на 3.1.2
  2. Измените версию Kotlin на 1.2.30
  3. Затем студия Android изменила оболочку gradle до версии 4.4.
  4. Тогда студия Android заявила, что используемая версия инструментов сборки была 27.1.1 и что я должен изменить его на 27.1.1, поэтому я также изменил целевой SDK на 27

Я перезапустил Android Studio, и проблема исчезла.

Нажмите File -> Invalidate Caches / Restart.

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

Вы также можете попробовать это:

  1. Переупорядочены репозитории, чтобы:

    mavenCentral()
    maven { url 'https://jitpack.io' }
    google()
    jcenter()
    
  2. Очистка этой папки: пользовательский ~ / .gradle / кеши и удаление приложение папка сборки вручную, затем очистить и восстановить.

Но я все еще не могу запустить свое приложение, так как оно построит проект перед его запуском.

Infinite Loops 08.06.2018 04:11

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

См. Дополнительную информацию

Что мне действительно помогло, так это добавление этого

kapt {
     generateStubs = true
}

в build.gradle

Добавляем еще один ответ для тех, кто не удалось удалить Instant App Provision, потому что он продолжает появляться.

Соберите проект вручную: ./gradlew assembleDebug

Это исправление, но оно будет работать (поскольку проблема, вероятно, связана с Android Studio).

В моем случае ни одно из вышеперечисленных решений не решило мою проблему, я использовал версию 1.2.50 Kotlin без какого-либо упоминания о Instant Run, а сборка не генерировала классы Dagger, поэтому я выяснил, что этот вопрос, по-видимому, решил мою проблему , в моей ситуации это проблема, связанная с новой версией Kotlin, поэтому я перешел на версию 1.2.41 и работал нормально. Кстати, я просто дошел до этого момента, потому что использовал Toggle View на экране сборки.

1. Выберите Toggle View и создайте свой проект.

Toggle View

2. Вы сможете точно увидеть, что произошло

Error

Вопрос о стеке: Kotlin 1.2.50 запрашивает baseFeatureInfoDir

Система отслеживания проблем: https://issuetracker.google.com/issues/110198434

  1. удалить apply plugin: 'kotlin-kapt'
  2. добавить mavenCentral() в build.gradle, например:

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

  3. Синхронизация и очистка проекта

У меня была эта проблема при использовании Область с kotlin в студии Android. Чтобы решить, выполните следующие действия:

  1. После добавления Realm в проект build.gradle убедитесь, что файл build.gradle вашего приложения выглядит следующим образом:

    apply plugin: 'com.android.application'  
    apply plugin: 'kotlin-android'  
    apply plugin: 'kotlin-android-extensions'  
    apply plugin: 'kotlin-kapt'  
    apply plugin: 'realm-android'  
    .  
    .  
    .  
    androidExtensions {  
    experimental = true
    }
    
  2. Используйте kapt вместо annotationProcessor в зависимостях build.gradle вашего приложения.

  3. Перейдите к Run -> Edit Configurations.. и удалите опцию Instant App Provision.

  4. Запустите эту команду в терминале студии Android:

    gradlew assembleDebug  
    
  5. Ничего страшного !

Примечание. Если вы снова видите сообщение «Причиной могут быть сторонние плагины Gradle», повторите шаги 3 и 4.

Configuration on demand with Gradle 4.6 and above: If you're using Android Gradle Plugin 3.0.x or 3.1.x with Gradle 4.6 and above, you should disable configuration on demand to avoid some unpredictable build errors. (If you are using Android Gradle Plugin 3.2.0 or higher, you do not need to take any action to disable configuration on demand.)

Disable configuration on demand in your gradle.properties file as shown below:

org.gradle.configureondemand=false To disable configuration on demand in the Android Studio settings, choose File > Settings (Android Studio

Preferences on Mac), select the Compiler category in the left pane, and clear the Configure on demand checkbox.

In Android Studio 3.2 Beta 1 and higher, the options for enabling configuration on demand have been removed. Please read known issues section from below link. enter link description here

Собственно, я тоже столкнулся с той же ошибкой. Я обновил свою версию kotlin до последний. Это может решить вашу проблему.

Другие вопросы по теме