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

为什么是;第三方Gradle插件可能是原因”;将Gradle更新为3.1.0后显示?,gradle,kotlin,Gradle,Kotlin,将Gradle更新为com.android.tools.build:Gradle:3.1.0后,我现在在日志中看到: 文件夹 E:\WORK\App\car\u android\carapp\build\generated\source\kaptKotlin\devRelease 第三方Gradle插件可能是原因 它在我的项目中起了作用!-> 您的build.gradle项目应如下图所示: 注意:如果您不使用Realm和一些Google服务,可能会有点不同 现在,让我们开始->转到you b

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

文件夹 E:\WORK\App\car\u android\carapp\build\generated\source\kaptKotlin\devRelease

第三方Gradle插件可能是原因


它在我的项目中起了作用!->

您的build.gradle项目应如下图所示:

注意:如果您不使用Realm和一些Google服务,可能会有点不同

  • 现在,让我们开始->转到you build.gradle应用程序
针对Android的平台模块 实验性多平台项目功能的更新引入了对Android平台模块的支持。这些模块应在Gradle构建脚本中应用相应的插件,并可以使用公共模块中的共享代码:

  • 您将把它复制到您的build.gradle顶部添加-
  • Kapt诊断位置 目前,Kotlin注释处理工具kapt可以提供指向原始Kotlin代码中位置的链接,而不是生成的Java存根,因为它报告注释处理过程中遇到的错误。您可以通过将以下行添加到Gradle构建脚本(build.Gradle)来启用此功能:

    2。现在添加它:

    kapt {
        mapDiagnosticLocations = true
    }
    dataBinding {
        enabled = true
    }
    
    IntelliJ IDEA插件改进 Kotlin 1.2.30为IntelliJ IDEA Kotlin插件带来了各种改进,包括性能改进、错误修复以及新的检查和意图

    对于某些项目,这一点很重要: 您将在构建中复制此内容。gradle-

    它将如下图所示

    现在我们需要在依赖项{../}build.gradle中添加实现:

    apply plugin: 'com.android.application'
    apply plugin: 'kotlin-platform-android'
    apply plugin: 'kotlin-android'
    apply plugin: 'kotlin-kapt'
    // ...
    
    // 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"
    
    * *

  • 清理你的项目
  • 建造它
  • 就这样 更多信息: :)让我知道它是否有效!(如果不行,我会的
    尝试帮助您找到更好的方法)

    如果您收到警告:

    第三方Gradle插件可能是原因

    在build选项卡中,这似乎是Android Studio v3.1.x的一个已知问题。
    根据报告,它可能与即时应用程序提供有关,但即使将其从运行/调试配置中删除,似乎也无法解决问题(至少在我安装的AS v3.1.1中是这样)


    请投票表决该问题,以便Android Studio团队给予更多关注,并希望及时修复。

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

    该目录是一个新生成的源代码集,与您可以将源文件拆分为
    src/main/java
    src/main/kotlin

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

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

    据此,“Kapt的根本问题是JetBrains的IDEA中的Kapt解析器将这些文件夹注册为“处于无效路径”。这是对API的滥用。”


    从2018年11月6日起,有一个修复程序可以对这些消息进行双重检查,并抑制关于实际有效路径的消息。

    我删除了两个文件夹app\build\generated\source\kaptKotlin\debug和app\build\generated\source\kaptKotlin\release(“debug”和“release”),并添加 在格拉德尔:

    kapt {
            mapDiagnosticLocations = true
        }
    

    那么项目是同步的,没有问题。

    它是说还是暗示,具体原因是什么?我也有同样的问题,我猜是generateStubs=true属性。我在Build->sync messages中也有同样的问题!我期待着找到解决办法!如果你修改了语法,并解释了你从哪里复制和粘贴了这些不同的布告,这个答案会更清楚。@Boann它看起来更好吗?它看起来更好吗?不,很难理解,你救了我一天。谢谢。这与问题无关。嗨,你从哪里发现已经有可用的修复程序了?在问题的最后。我看到有一些额外的“不固定”的评论了。
    kapt {
            mapDiagnosticLocations = true
        }