为什么"第三方Gradle插件可能是原因"将Gradle更新为3.1.0后显示?

时间:2018-03-28 23:28:21

标签: gradle kotlin

将Gradle更新为com.android.tools.build:gradle:3.1.0后,在日志中我现在看到:

  

文件夹   E:\ WORK \应用\ car_android \ carapp \建立\产生\源\ kaptKotlin \ devRelease

     

第三方Gradle插件可能是原因

5 个答案:

答案 0 :(得分:23)

如果您收到警告:

  

第三方Gradle插件可能是原因

在构建标签中,它似乎是Android Studio v3.1.x的已知问题。
根据{{​​3}}报告,它可能与即时应用程序配置有关,但即使从运行/调试配置中删除它也似乎无法解决问题(至少不是我安装的AS v3.1.1)。 / p>

请投票this问题,以便Android Studio小组给予更多关注,并希望及时修复。

答案 1 :(得分:2)

这是因为Kapt注释处理器使用此目录存储Kotlin生成的文件。

该目录是新生成的源集,与将源文件拆分为src/main/javasrc/main/kotlin

的方式相同

但是,Android Gradle插件无法将此目录识别为生成的源集。

在大多数情况下,这是完全无害的,因为大多数第三方处理器正在生成.Java个文件。 Kapt将它们写入build/generated/source/kapt目录。

答案 2 :(得分:1)

它在我的项目中有效! - >

您的build.gradle项目应如下图所示:enter image description here

注意:如果您不使用Realm和某些Google服务

,可能会有所不同

enter image description here

  • 现在,让我们开始吧 - >转到build.gradle App

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

  1. 您将在build.gradle内部复制此内容 -
  2. Kapt诊断位置 截至目前,Kotlin注释处理工具kapt可以提供原始Kotlin代码中位置的链接,而不是生成Java存根,因为它报告了注释处理过程中遇到的错误。您可以通过将以下行添加到Gradle构建脚本(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"
    

    * *

    1. 清理项目
    2. 构建
    3. 那就是它!
    4. 更多信息: Android Site :)让我知道它是否有效! (如果它不起作用,我会的     试着帮助你找到更好的方法)

答案 3 :(得分:1)

根据这个Android Studio issue,&#34; Kapt的根本问题是来自JetBrains的IDEA中的Kapt解析器将这些文件夹注册为“处于无效路径中”。这是对API的误用。&#34;

截至2014年6月11日,已经有一个修复程序可以仔细检查这些消息并对有效路径进行抑制。

答案 4 :(得分:0)

我删除两个文件夹app \ build \ Generated \ source \ kaptKotlin \ debug和app \ build \ Generated \ source \ kaptKotlin \ release(“ debug”和“ release”)并添加 在gradle中:

kapt {
        mapDiagnosticLocations = true
    }

然后项目就同步了,没问题。