第 3 方 Gradle 插件可能是原因

3rd-party Gradle plug-ins may be the cause

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

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

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 运行,gradle 就可以了。

对我有用。

要解决此问题,从 "Run Configurations" 中删除 Instant App Provision 并仅保留 Gradle-Aware Make.

Run -> Edit Configurations..

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

是什么解决了我的问题:

  • 将 gradle 插件版本更改为 3.1.0
  • 将 Kotlin 版本更改为 1.2.30
  • 然后 Android 工作室将 gradle 包装器更改为版本 4.4
  • 然后 Android studio 说使用的构建工具版本是 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 诊断位置 截至目前,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 :) 让我知道它是否有效! (如果它不起作用,我会 尝试帮助您找到更好的方法)

如果您不赞成请解释原因

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

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

dependencies { classpath 'com.android.tools.build:gradle:3.1.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:.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 studio 说使用的构建工具版本是 27.1.1 并且我应该将其更改为 27.1.1 所以我也将目标 SDK 更改为 27

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

点击文件 -> 无效 Caches/Restart

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

你也可以试试这个:

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

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

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

See Further Details

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

kapt {
     generateStubs = true
}

进入build.gradle

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

手动构建项目:./gradlew assembleDebug

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

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

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

2:您将能够清楚地看到发生了什么

计算器问题: Kotlin 1.2.50 asks for baseFeatureInfoDir

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

  1. 移除apply plugin: 'kotlin-kapt'
  2. 在build.gradle中添加mavenCentral()喜欢:

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

  3. 同步和清理项目

我在 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 工作室终端中的此命令:

    gradlew assembleDebug  
    
  5. 还可以!

注意:如果您再次看到“第 3 方 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.

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

其实我也遇到了同样的错误。 我所做的是将我的 kotlin 版本更新到 latest。 这可能会解决您的问题。