133

更新到 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'
        }
    }
}
4

17 回答 17

143

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

Run -> Edit Configurations..

成功构建后我的运行/调试配置

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

于 2018-03-28T08:10:37.753 回答
17

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

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

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

你也可以试试这个:

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

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

于 2018-05-14T07:56:18.610 回答
7

什么为我解决了这个问题:

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

    kapt {
         generateStubs = true
     }
    

我希望它有帮助

于 2018-03-28T14:39:25.120 回答
5

在 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
于 2018-04-28T08:28:37.153 回答
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 网站 :) 让我知道它是否有效!(如果不起作用,我会尽力帮助您找到更好的方法)

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

于 2018-03-29T16:14:49.790 回答
5

对我真正有帮助的是添加这个

kapt {
     generateStubs = true
}

进入 build.gradle

于 2018-05-24T08:57:34.437 回答
3

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

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

切换视图

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

错误

Stackoverflow 问题: Kotlin 1.2.50 要求 baseFeatureInfoDir

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

于 2018-06-20T10:06:43.220 回答
2

尝试从设置中删除即时运行,gradle 就可以了。

它对我有用。

于 2018-03-28T04:09:42.707 回答
2

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

  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. 最后重建项目。

于 2018-04-05T06:27:48.377 回答
1
  1. 消除apply plugin: 'kotlin-kapt'
  2. 添加mavenCentral()build.gradle 像:

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

  3. 同步和清理项目
于 2018-08-25T08:48:15.533 回答
0

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

查看更多详情

于 2018-05-24T01:42:51.063 回答
0

Gradle 4.6 及更高版本的按需配置:如果您使用 Android Gradle 插件 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 及更高版本中,已删除启用按需配置的选项。请阅读以下链接中的已知问题部分。 在此处输入链接描述

于 2018-11-08T12:58:53.217 回答
0

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

于 2019-03-17T06:24:20.743 回答
0

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

手动构建项目:./gradlew assembleDebug

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

于 2018-06-05T06:29:18.680 回答
0

这是我为我的案例解决此问题的一些方法:

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

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

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

于 2018-03-28T03:43:38.667 回答
0

在 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 步。

于 2018-09-23T11:43:02.820 回答
-4

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

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

于 2018-04-08T05:03:26.890 回答