第三方Gradle插件可能是原因

hum*_*zed 132 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' }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的应用程序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'
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Ang*_*ski 143

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

Run -> Edit Configurations..
Run Code Online (Sandbox Code Playgroud)

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

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

  • 由于某种原因,删除"即时应用程序规定"后,它总是返回到它的位置. (59认同)
  • @Caleb_Allen没有,但无论如何都没有人使用即时跑.这适用于'即时应用',而非即时运行 (7认同)
  • 这实际上是有效的,但任何想法为什么它发生了,你是如何达到这个解决方案. (5认同)
  • 对于那些不断回来的人(比如@humazed),我找到了一个修复:首先再次转到"运行>编辑配置".然后单击顶部带有扳手图标的按钮,转到"编辑默认值".选择"Android App"并只保留之前的"Gradle-aware Make".点击申请. (4认同)
  • 不工作.还有其他方法吗? (3认同)
  • 这会禁用即时运行吗? (3认同)
  • @PeterSamokhin你能确认改变是否适用?我也有这个问题,并且只要应用更改并更新所有默认运行配置,只要创建新的AS窗口,"Instant App Provisions"就会一直弹出 (2认同)
  • 如果您仍然遇到此问题,它似乎已从AS 3.2 beta1开始修复:https://androidstudio.googleblog.com/2018/06/android-studio-32-beta-1-available.html(请参阅"Android Studio对kapt生成的文件夹发出了多余的警告.") (2认同)

Spk*_*ngR 17

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

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

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

你也可以试试这个:

  1. 重新订购的存储库:

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


小智 7

是什么解决了我的问题:

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

    kapt {
         generateStubs = true
     }
    
    Run Code Online (Sandbox Code Playgroud)

我希望它有所帮助


Cri*_*fer 5

这是我遵循的一些步骤。就我而言,它已解决了该问题!

针对Android平台模块实验性多平台项目功能的更新引入了对Android平台模块的支持。这些模块应该在Gradle构建脚本中应用相应的插件,并且可以使用来自公共模块的共享代码:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-platform-android'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
// ...
// ...
Run Code Online (Sandbox Code Playgroud)

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

kapt {
    mapDiagnosticLocations = true
}
Run Code Online (Sandbox Code Playgroud)

添加:

allprojects {
        repositories {
            jcenter()
            google()
        }
    }
Run Code Online (Sandbox Code Playgroud)

不要忘记下一个:

// 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"
Run Code Online (Sandbox Code Playgroud)
  1. 清理您的项目

  2. 建立,就是这样!

添加所有这些,清理您的项目,构建,仅此而已!:) 让我知道这个是否奏效!(如果对您不起作用,我将为您提供其他解决方案)

更多信息: Android网站 :)让我知道它是否有效!(如果它不起作用,我会尽力帮助您找到更好的方法)

如果您给了DownVote解释原因


小智 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
Run Code Online (Sandbox Code Playgroud)

因为dataBinding使用apply plugin: 'kotlin-kapt'所以添加

kapt {
    generateStubs = true
}
Run Code Online (Sandbox Code Playgroud)
  1. 将gradle插件版本更改为3.1.2
  2. 将Kotlin版本更改为1.2.30
  3. 然后Android studio将gradle包装器更改为4.4版
  4. 然后Android工作室说使用的构建工具版本是27.1.1,我应该将其更改为27.1.1所以我也将目标SDK更改为27


And*_*eev 5

实际上对我有帮助的是添加了这个

kapt {
     generateStubs = true
}
Run Code Online (Sandbox Code Playgroud)

进入build.gradle