第三方Gradle插件可能是原因

时间:2018-03-27 16:37:19

标签: android android-studio android-studio-3.1

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

17 个答案:

答案 0 :(得分:144)

要解决此问题,请从"运行配置" 删除 Instant App Provision并只留下Gradle-Aware Make

Run -> Edit Configurations..

My Run/Debug configurations after successful build

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

答案 1 :(得分:17)

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

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

每次更改gradle文件时,我必须重启Android Studio或问题返回。

你也可以试试这个:

  1. 重新订购的存储库:

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

答案 2 :(得分:7)

为我解决了这个问题:

  • 将gradle插件版本更改为3.1.0
  • 将Kotlin版本更改为1.2.30
  • 然后Android studio将gradle包装器更改为版本4.4
  • 然后Android工作室说使用的构建工具版本是 27.0.3并且我应该将其更改为27.0.3,因此我还将目标SDK更改为27
  • 我把它添加到我的gradle.build:

    kapt {
         generateStubs = true
     }
    

我希望它有所帮助

答案 3 :(得分:5)

实际帮助我的是添加此

kapt {
     generateStubs = true
}

进入build.gradle

答案 4 :(得分: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工作室将gradle包装器更改为版本4.4
  4. 然后Android工作室说使用的构建工具版本是 27.1.1并且我应该将其更改为27.1.1,因此我还将目标SDK更改为27

答案 5 :(得分:4)

以下是我遵循的一些步骤。在我的情况下,它解决了这个问题!

面向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. 构建和那就是它!

  3. 添加所有这些,清理您的项目,构建和那就是它! :) 让我知道这个是否奏效! (如果它不适合你,我会帮你解决另一个问题)

    更多信息: Android Site :)让我知道它是否有效! (如果它不起作用,我会的     试着帮助你找到更好的方法)

    如果你给downVote解释原因

答案 6 :(得分:3)

就我而言,以上解决方案均未解决我的问题,我使用的是1.2.50 Kotlin版本,而没有提及Instant Run,并且该构建没有生成Dagger类,因此我找到了解决了我问题的问题问题,显然,在我的情况下,这是与新Kotlin版本有关的问题,因此我降级至1.2.41版本,并且运行良好。 顺便说一下,我只是跟踪到这一点,因为我使用了“构建”屏幕上的“切换视图”。

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

Toggle View

2:您将能够准确看到发生了什么

Error

Stackoverflow问题: Kotlin 1.2.50 asks for baseFeatureInfoDir

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

答案 7 :(得分:2)

尝试从设置中删除即时运行,并且gradle将很有用。

它对我有用。

答案 8 :(得分:2)

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

  1. 首先将kotlin插件版本安装到'1.2.31'并在build.gradle文件中更新如下。
  2.   

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

    1. 清洁项目。

    2. 最后重建项目。

答案 9 :(得分:1)

  1. 删除apply plugin: 'kotlin-kapt'
  2. 在build.gradle中添加mavenCentral(),例如:

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

  3. 同步和清理项目

答案 10 :(得分:0)

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

See Further Details

答案 11 :(得分:0)

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

手动构建项目:./gradlew assembleDebug

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

答案 12 :(得分:0)

以下是我为我的案例修复此问题的一些方法:

  

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

     

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

现在尝试清理您的项目并构建。问题应该得到解决。 每次构建后如果再次构建,那么可能会再次发生问题,所以,只需再次清理项目然后构建。

答案 13 :(得分: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. 没关系!

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

答案 14 :(得分:0)

  

使用Gradle 4.6及更高版本进行按需配置:如果您正在使用   使用Gradle 4.6及更高版本的Android Gradle插件3.0.x或3.1.x,您   应按需禁用配置以避免某些不可预测的情况   建立错误。 (如果您使用的是Android Gradle插件3.2.0或更高版本,   您无需采取任何措施即可禁用   需求。)

     

在gradle.properties文件中按需禁用配置,如下所示:   如下所示:

     

org.gradle.configureondemand = false禁用按需配置   在Android Studio设置中,选择“文件”>“设置”(Android Studio

     
    

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

  
     

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

答案 15 :(得分:0)

实际上,我也遇到了同样的错误。 我所做的是将Kotlin版本更新为latest。 这样可以解决您的问题。

答案 16 :(得分:-4)

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

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