3rd-party Gradle插件可能是原因


132

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

1
根据issuetracker.google.com/issues/74537216这个问题是在AS3.2
天使岛

Build> Rebuild Project从我
这里

Answers:


143

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

Run -> Edit Configurations..

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

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


5
这实际上是可行的,但是不知道为什么会发生以及您如何获得此解决方案。

59
出于某种原因,删除后Instant App Provisions总是返回其位置。
令人震惊

3
这会禁用即时运行吗?
Caleb_Allen

7
@Caleb_Allen不,但是没有人使用即时运行。这是针对“即时应用”的,而不是即时运行的
Tim

4
对于这种情况一直持续下去的人(例如@humazed),我找到了解决方法:首先Run > Edit Configurations再次尝试。然后Edit Defaults单击顶部带有扳手图标的按钮转到。选择Android AppGradle-aware Make像以前一样离开。点击申请。
b_yng

17

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

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

每次更改gradle文件时,都必须将Android Studio重新启动到,否则问题会再次出现。

您也可以尝试以下操作:

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

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


但是我仍然无法运行我的应用程序,因为它会在启动项目之前先构建项目。
无限循环'18

7

是什么解决了我的问题:

  • 将gradle插件版本更改为 3.1.0
  • 将Kotlin版本更改为 1.2.30
  • 然后,Android Studio将Gradle包装器更改为版本 4.4
  • 然后,Android Studio表示使用的构建工具版本是 27.0.3,我应该将其更改为,27.0.3因此我还将目标SDK更改为27
  • 我将此添加到我的gradle.build中:

    kapt {
         generateStubs = true
     }

希望对您有所帮助


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包装器更改为版本4.4
  4. 然后,Android Studio表示使用的构建工具版本为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诊断位置 到目前为止,Kaptlin注释处理工具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网站 :)让我知道它是否有效!(如果它不起作用,我会尽力帮助您找到更好的方法)

如果您给了DownVote解释原因


1
将行添加mapDiagnosticLocations = truekapt配置可以正常工作-有时至少是很好:/
kuhnroyal,

@kuhnroyal,我感谢您的反馈!祝您有美好的一天,我一直在寻找更好的解决方案
Cristofer


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



2

这是我已经遵循的一些步骤,并且已经解决了我的问题。

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

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

  1. 清洁项目。

  2. 最后重建项目。



0

这是解决我的问题的一些方法:

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

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

现在尝试清理您的项目并进行构建。问题应解决。每次构建后,如果再次构建,则可能会再次发生问题,因此,只需再次清洁项目然后进行构建即可。


0

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

查看更多详细信息


0

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

手动生成项目: ./gradlew assembleDebug

它是一个修补程序,但是可以正常工作(因为该问题可能与Android Studio有关)。


0

在Android Studio中与Kotlin一起使用Realm时遇到了这个问题。
要解决,请遵循以下步骤:

  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. 没关系 !

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


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设置中按需禁用配置,请选择“文件”>“设置”(Android Studio

在Mac上为“偏好设置”),在左窗格中选择“编译器”类别,然后清除“按需配置”复选框。

在Android Studio 3.2 Beta 1及更高版本中,删除了按需启用配置的选项。请从下面的链接阅读已知问题部分。 在此处输入链接说明



-4

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.