因此,自从添加了新的 Room android 架构库后,这种情况就开始发生了。我遇到了 AppDatabase_Impl 不存在的问题,我通过将 kapt 添加到注释中来解决这个问题:
- Android Room Persistences 库和 Kotlin
- Kotlin 中的 Room Persistence lib 实现
- Kotlin 中的 Room Persistence lib 实现(Gradle 错误)
我有其他我怀疑是由于 AS、Kotlin 和 Java 8 引起的错误,所以我尝试更新到 AS 3.0
我现在在尝试构建时收到以下错误:
Information:Gradle tasks [:app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:mockableAndroidJar, :app:compileDebugSources, :app:compileDebugAndroidTestSources, :app:compileDebugUnitTestSources, :cryptocurrency-icons:generateDebugSources, :cryptocurrency-icons:mockableAndroidJar, :cryptocurrency-icons:generateDebugAndroidTestSources, :cryptocurrency-icons:compileDebugSources, :cryptocurrency-icons:compileDebugUnitTestSources, :cryptocurrency-icons:compileDebugAndroidTestSources]
Error:Circular dependency between the following tasks:
:app:compileDebugKotlin
+--- :app:dataBindingExportBuildInfoDebug
| \--- :app:compileDebugKotlin (*)
\--- :app:kaptDebugKotlin
\--- :app:dataBindingExportBuildInfoDebug (*)
(*) - details omitted (listed previously)
Information:BUILD FAILED in 1s
Information:1 error
Information:0 warnings
Information:See complete output in console
我的 gradle 文件看起来像:
项目等级
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
ext {
compileSdkVersion = 25
buildToolsVersion = "25.0.3"
minSdkVersion = 16
targetSdkVersion = 25
kotlin_version = '1.1.2-4'
gradle_version = '2.3.2'
android_arch_room_version = '1.0.0-alpha1'
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0-alpha2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
mavenCentral()
maven { url 'https://jitpack.io' }
maven { url 'https://maven.google.com' }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
模块等级
apply plugin: 'com.android.library'
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
defaultConfig {
minSdkVersion rootProject.minSdkVersion
targetSdkVersion rootProject.targetSdkVersion
consumerProguardFiles 'consumer-proguard-rules.pro'
versionCode 100
versionName "1.0.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile 'com.mikepenz:iconics-core:2.8.2@aar'
}
应用程序分级
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
kapt {
generateStubs = true
}
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
defaultConfig {
applicationId "com.my.application"
minSdkVersion rootProject.minSdkVersion
targetSdkVersion rootProject.targetSdkVersion
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
dataBinding {
enabled = true
}
}
dependencies {
//Jars
compile fileTree(include: ['*.jar'], dir: 'libs')
//Modules
compile project(':cryptocurrency-icons')
//Kotlin
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
//Support
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.android.support:design:25.3.1'
compile 'com.android.support:support-v4:25.3.1'
//OSS
compile 'com.squareup.retrofit2:retrofit:2.3.0'
compile 'com.squareup.retrofit2:converter-scalars:2.3.0'
compile 'com.github.daniel-stoneuk:material-about-library:1.9.0'
compile 'com.mikepenz:iconics-core:2.8.2@aar'
compile 'com.mikepenz:community-material-typeface:1.9.32.1@aar'
compile 'com.github.paolorotolo:appintro:4.1.0'
compile 'com.journeyapps:zxing-android-embedded:3.5.0'
//Data binding
kapt "com.android.databinding:compiler:$gradle_version"
//Room
compile "android.arch.persistence.room:runtime:$android_arch_room_version"
kapt "android.arch.persistence.room:compiler:$android_arch_room_version"
//Test
testCompile 'junit:junit:4.12'
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
}
repositories {
mavenCentral()
}