【问题标题】:3rd-party Gradle plug-ins may be the cause3rd-party Gradle 插件可能是原因
【发布时间】:2018-09-06 04:15:45
【问题描述】:

更新到 Android Studio 3.1 后,我收到以下错误消息:

该项目运行良好,这主要只是一个警告,所以我的问题是警告的含义是什么,我该如何摆脱它?

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'
        }
    }
}

【问题讨论】:

标签: android android-studio android-studio-3.1


【解决方案1】:

要解决此问题,请从“运行配置”中删除Instant App Provision,只留下Gradle-Aware Make

Run -> Edit Configurations..

我有 AndroidStudio 3.1、Gradle 插件 3.1.0 和 Kotlin 库版本 1.2.30

【讨论】:

  • 这确实有效,但不知道为什么会发生这种情况以及您是如何得出这个解决方案的。
  • 由于某种原因,在删除 Instant App Provisions 后它总是回到原来的位置。
  • 这会禁用即时运行吗?
  • @Caleb_Allen 不,但没有人使用即时运行。这适用于“即时应用”,而不是即时运行
  • 对于不断出现这种情况的任何人(如@humazed),我找到了解决方法:首先再次访问Run > Edit Configurations。然后通过单击顶部带有扳手图标的按钮转到Edit Defaults。选择Android App 并像以前一样只留下Gradle-aware Make。点击应用。
【解决方案2】:

我重启了Android Studio,问题就消失了。

单击文件 -> 使缓存无效/重新启动

每次更改 gradle 文件都必须重新启动 Android Studio 或问题再次出现。

你也可以试试这个:

  1. 将存储库重新排序到:

    mavenCentral()
    maven { url 'https://jitpack.io' }
    google()
    jcenter()
    
  2. 清除此文件夹:用户的~/.gradle/caches并删除应用 手动构建文件夹,然后清理并重建

【讨论】:

  • 但我仍然无法运行我的应用程序,因为它会在启动之前构建项目。
【解决方案3】:

什么解决了我的问题:

  • 将gradle插件版本改为3.1.0
  • 将 Kotlin 版本更改为 1.2.30
  • 然后Android studio 将gradle wrapper 改成4.4
  • 然后Android工作室说使用的构建工具版本是 27.0.3 并且我应该将其更改为 27.0.3 所以我还将目标 SDK 更改为 27
  • 我将此添加到我的 gradle.build:

    kapt {
         generateStubs = true
     }
    

希望对你有帮助

【讨论】:

    【解决方案4】:

    在 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 Studio 将 gradle wrapper 更改为 4.4 版
    4. 然后Android工作室说使用的构建工具版本是 27.1.1,我应该将其更改为 27.1.1,因此我还将目标 SDK 更改为 27

    【讨论】:

      【解决方案5】:

      以下是我遵循的一些步骤。就我而言,它解决了问题!

      面向 Android 的平台模块 实验性多平台项目功能的更新引入了对 Android 平台模块的支持。这些模块应该在 Gradle 构建脚本中应用相应的插件,并且可以使用来自公共模块的共享代码:

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

      Kapt 诊断位置 截至目前,Kotlin 注释处理工具 kapt 可以提供指向原始 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 Site :) 让我知道它是否有效! (如果它不起作用,我会 尝试帮助您找到更好的方法)

      如果您投了反对票,请解释原因

      【讨论】:

      • 将行 mapDiagnosticLocations = true 添加到 kapt 配置有效 - 有时至少:/
      • @kuhnroyal 感谢您的反馈!祝你有美好的一天,我一直在寻找更好的解决方案
      【解决方案6】:

      真正帮助我的是添加这个

      kapt {
           generateStubs = true
      }
      

      进入 build.gradle

      【讨论】:

        【解决方案7】:

        在我的情况下,上述解决方案都没有解决我的问题,我使用的是 1.2.50 Kotlin 版本,没有提及 Instant Run,并且构建没有生成 Dagger 类,所以我发现这个问题解决了我的问题问题,显然,在我的情况下,这是与新的 Kotlin 版本相关的问题,所以我降级到版本 1.2.41 并且工作正常。 顺便说一句,我只是跟踪到了这一点,因为我在构建屏幕上使用了切换视图。

        1:选择切换视图并构建您的项目

        2:您将能够确切地看到发生了什么

        Stackoverflow 问题: Kotlin 1.2.50 asks for baseFeatureInfoDir

        问题跟踪器: https://issuetracker.google.com/issues/110198434

        【讨论】:

          【解决方案8】:

          尝试从设置中删除 Instant run,然后 gradle 就可以使用了。

          它对我有用。

          【讨论】:

            【解决方案9】:

            这是我遵循的一些步骤,它解决了我的问题。

            1. 首先将 kotlin 插件版本安装到“1.2.31”并在 build.gradle 文件中更新它,如下所示。

            依赖{ 类路径'com.android.tools.build:gradle:3.1.0' 类路径“org.jetbrains.kotlin:kotlin-gradle-plugin:$1.2.31” }

            1. 清理项目。

            2. 最后重建项目。

            【讨论】:

              【解决方案10】:
              1. 删除apply plugin: 'kotlin-kapt'
              2. 在 build.gradle 中添加 mavenCentral() 如下:

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

              3. 同步和清理项目

              【讨论】:

                【解决方案11】:

                以下是我解决此问题的一些方法:

                首先从项目构建 gradle 文件更新您的 android gradle 插件版本,然后从 gradle 属性更新您的 gradle 版本。

                最后从项目构建 gradle 文件中将您的 kotlin 版本(强制)更新为 kotlin_version = '1.2.30' 或更高版本。

                现在尝试清理您的项目并构建。问题应该得到解决。 每次构建后,如果您再次构建,则可能会再次出现问题,因此,只需再次清理您的项目,然后构建。

                【讨论】:

                  【解决方案12】:

                  这是因为 Kapt 注释处理器使用此目录来存储 Kotlin 生成的文件。 Android 目前默认不识别路径。

                  See Further Details

                  【讨论】:

                    【解决方案13】:

                    为那些无法删除Instant App Provision的人添加另一个答案,因为它会不断重新出现。

                    手动构建项目:./gradlew assembleDebug

                    这是一个修补程序,但它会起作用(因为该问题可能与 Android Studio 有关)。

                    【讨论】:

                      【解决方案14】:

                      我在 android studio 中使用 Realm 和 kotlin 时遇到了这个问题。
                      要解决,请按照以下步骤操作:

                      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. 在您的应用 build.gradle 依赖项中使用 kapt 而不是 annotationProcessor

                      3. 转到Run -> Edit Configurations.. 并删除Instant App Provision 选项。

                      4. 在 Android Studio 的终端中运行这个命令:

                        gradlew assembleDebug  
                        
                      5. 没关系!

                      注意:如果您再次看到“3rd-party Gradle 插件可能是原因”消息,请再次执行第 3 步和第 4 步。

                      【讨论】:

                        【解决方案15】:

                        使用 Gradle 4.6 及更高版本按需配置:如果您正在使用 Android Gradle Plugin 3.0.x 或 3.1.x 与 Gradle 4.6 及更高版本,你 应按需禁用配置以避免一些不可预知的 构建错误。 (如果您使用的是 Android Gradle Plugin 3.2.0 或更高版本, 您无需采取任何措施来禁用配置 需求。)

                        在 gradle.properties 文件中禁用按需配置 如下图:

                        org.gradle.configureondemand=false 禁用按需配置 在 Android Studio 设置中,选择 File > Settings (Android Studio

                        Preferences on Mac),选择左侧窗格中的 Compiler 类别,然后清除 Configure on demand 复选框。

                        在 Android Studio 3.2 Beta 1 及更高版本中,用于启用的选项 按需配置已被删除。 请阅读以下链接中的已知问题部分。 enter link description here

                        【讨论】:

                          【解决方案16】:

                          实际上,我也面临同样的错误。 我所做的是将我的 kotlin 版本更新为latest。 这可能会解决您的问题。

                          【讨论】:

                            【解决方案17】:

                            好吧,我发现是因为apply plugin: 'kotlin-kapt',如果你在build.gradle(app)中删除这行,那么你会构建成功...

                            不知道为什么这个插件会导致这些警告。

                            【讨论】:

                              猜你喜欢
                              • 2019-01-02
                              • 2018-09-07
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              • 2019-04-21
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              相关资源
                              最近更新 更多