更新到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'
}
}
}
答案 0 :(得分:144)
要解决此问题,请从"运行配置" 删除 Instant App Provision
并只留下Gradle-Aware Make
。
Run -> Edit Configurations..
我有AndroidStudio 3.1
,Gradle Plugin 3.1.0
和Kotlin库版本1.2.30
。
答案 1 :(得分:17)
我重新启动了Android Studio,问题就消失了。
点击文件 - >使高速缓存无效/重新启动
每次更改gradle文件时,我必须重启Android Studio或问题返回。
你也可以试试这个:
重新订购的存储库:
mavenCentral()
maven { url 'https://jitpack.io' }
google()
jcenter()
清除此文件夹:用户的〜/ .gradle / caches 并删除应用 手动构建文件夹,然后清理并重建。
答案 2 :(得分:7)
为我解决了这个问题:
3.1.0
1.2.30
4.4
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
}
答案 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"
清理项目
构建和那就是它!
添加所有这些,清理您的项目,构建和那就是它! :) 让我知道这个是否奏效! (如果它不适合你,我会帮你解决另一个问题)
更多信息: Android Site :)让我知道它是否有效! (如果它不起作用,我会的 试着帮助你找到更好的方法)
如果你给downVote解释原因
答案 6 :(得分:3)
就我而言,以上解决方案均未解决我的问题,我使用的是1.2.50 Kotlin版本,而没有提及Instant Run,并且该构建没有生成Dagger类,因此我找到了解决了我问题的问题问题,显然,在我的情况下,这是与新Kotlin版本有关的问题,因此我降级至1.2.41版本,并且运行良好。 顺便说一下,我只是跟踪到这一点,因为我使用了“构建”屏幕上的“切换视图”。
1:选择“切换视图”并构建您的项目
2:您将能够准确看到发生了什么
Stackoverflow问题: Kotlin 1.2.50 asks for baseFeatureInfoDir
答案 7 :(得分:2)
尝试从设置中删除即时运行,并且gradle将很有用。
它对我有用。
答案 8 :(得分:2)
以下是我遵循的一些步骤,并解决了我的问题。
依赖{ classpath'com.android.tools.build:grad:3.10' classpath“org.jetbrains.kotlin:kotlin-gradle-plugin:$ 1.2.31” }
清洁项目。
最后重建项目。
答案 9 :(得分:1)
apply plugin: 'kotlin-kapt'
在build.gradle中添加mavenCentral()
,例如:
allprojects {
repositories {
mavenCentral()
google()
jcenter() } }
答案 10 :(得分:0)
这是因为Kapt注释处理器使用此目录存储Kotlin生成的文件。 Android目前默认无法识别路径。
答案 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结合使用时,我遇到了这个问题。
要解决,请按照以下步骤操作:
将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
}
在应用程序build.gradle依赖项中使用kapt
而不是annotationProcessor
。
转到Run -> Edit Configurations..
并删除Instant App Provision
选项。
在Android Studio的终端中运行以下命令:
gradlew assembleDebug
没关系!
注意:如果再次看到“第三方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)中删除这一行,那么你将成功构建......
不知道为什么这个插件会导致这些警告。