我一直在努力解决Android Room组件的问题,
我所做的就是将Android Studio从3.3升级到3.4.1,同时完成了gradle等更改。
我什至尝试回到3.3,但没有任何效果。
我已经使用Run with --info or --debug option
来尝试查看更多详细信息,但是没有任何信息可以为我提供更多信息。请帮助
e: /.../app/build/tmp/kapt3/stubs/debug/com/.../model/HotspotEntity.java:7: error: [RoomProcessor:MiscError] androidx.room.RoomProcessor was unable to process this class because not all of its dependencies could be resolved. Check for compilation errors or a circular dependency with generated code.
public final class HotspotEntity implements android.os.Parcelable {
^
e: /.../app/build/tmp/kapt3/stubs/debug/com/.../ConditionEntity.java:7: error: [RoomProcessor:MiscError] androidx.room.RoomProcessor "same as above".
public final class ConditionEntity implements android.os.Parcelable {
^
e: /.../app/build/tmp/kapt3/stubs/debug/com/.../model/AdLimits.java:6: error: [RoomProcessor:MiscError] androidx.room.RoomProcessor "same as above"
public final class AdLimits {
^
e: /.../app/build/tmp/kapt3/stubs/debug/com/.../model/AdTarget.java:6: error: [RoomProcessor:MiscError] androidx.room.RoomProcessor "same as above"
public final class AdTarget {
^
e: /.../app/build/tmp/kapt3/stubs/debug/com/.../model/AdUrl.java:6: error: [RoomProcessor:MiscError] androidx.room.RoomProcessor "same as above"
public final class AdUrl {
^
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:kaptDebugKotlin'.
> Compilation error. See log for more details
版本
Android Gradle:
3.4.1
Gradle version:
5.4.1
Android Room:
def room_version = "2.1.0-alpha06"
implementation 'androidx.room:room-runtime:' + room_version
kapt 'androidx.room:room-compiler:' + room_version
testImplementation 'androidx.room:room-testing:' + room_version
----更新----
下面在2.1.0-rc01"
房间尝试过,将其更改为相同的问题,但类别不同:
AppDatabase.java:8: error: [RoomProcessor:MiscError] androidx.room.RoomProcessor was unable to process this class because not all of its dependencies could be resolved. Check for compilation errors or a circular dependency with generated code.
public abstract class AppDatabase extends androidx.room.RoomDatabase {
成绩文件
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: "androidx.navigation.safeargs.kotlin"
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.cfl.surfstoked"
minSdkVersion 21
targetSdkVersion 28
versionCode 19
versionName "1.0.4"
vectorDrawables.useSupportLibrary = true
}
buildTypes {
debug {
debuggable true
}
release {
debuggable false
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
repositories {
mavenCentral()
}
lintOptions {
checkReleaseBuilds false
}
configurations {
cleanedAnnotations
compile.exclude group: 'org.jetbrains', module: 'annotations'
}
}
dependencies {
kapt 'com.google.dagger:dagger-android-processor:2.23.1'
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'androidx.core:core-ktx:1.0.2'
def lifecycleVersion = "2.1.0-alpha02"
implementation 'androidx.lifecycle:lifecycle-extensions:' + lifecycleVersion
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:' + lifecycleVersion
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0-alpha01'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.0.0'
kapt 'androidx.lifecycle:lifecycle-compiler:' + lifecycleVersion
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
//DI
def koinVersion = "1.0.2"
implementation 'org.koin:koin-android:' + koinVersion
implementation 'org.koin:koin-androidx-scope:' + koinVersion
implementation 'org.koin:koin-androidx-viewmodel:' + koinVersion
//Navigation
// def navigationVersion = "1.0.0-beta02"
// implementation 'android.arch.navigation:navigation-fragment-ktx:' + navigationVersion
// implementation 'android.arch.navigation:navigation-ui-ktx:' + navigationVersion
def navigationVersion = "2.1.0-alpha01"
implementation 'androidx.navigation:navigation-fragment-ktx:' + navigationVersion
implementation 'androidx.navigation:navigation-ui-ktx:' + navigationVersion
implementation 'org.greenrobot:eventbus:3.1.1'
//Coroutines
def corutinesVersion = "1.1.1"
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:' + corutinesVersion
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:' + corutinesVersion
//Database
def room_version = "2.1.0-rc01"
implementation 'androidx.room:room-runtime:' + room_version
kapt 'androidx.room:room-compiler:' + room_version
// implementation 'androidx.room:room-coroutines:' + room_version
testImplementation 'androidx.room:room-testing:' + room_version
}
apply plugin: 'com.google.gms.google-services'
应用依赖项
debugCompileClasspath - Compile classpath for compilation 'debug' (target (androidJvm)).
+--- org.jetbrains.kotlin:kotlin-android-extensions-runtime:{strictly 1.3.30} -> 1.3.30 (c)
+--- org.jetbrains.kotlin:kotlin-stdlib:{strictly 1.3.30} -> 1.3.30 (c)
+--- org.jetbrains.kotlin:kotlin-stdlib-common:{strictly 1.3.30} -> 1.3.30 (c)
+--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:{strictly 1.3.30} -> 1.3.30 (c)
+--- androidx.core:core-ktx:{strictly 1.0.2} -> 1.0.2 (c)
+--- androidx.annotation:annotation:{strictly 1.1.0-rc01} -> 1.1.0-rc01 (c)
+--- androidx.core:core:{strictly 1.1.0-alpha05} -> 1.1.0-alpha05 (c)
+--- com.google.guava:listenablefuture:{strictly 9999.0-empty-to-avoid-conflict-with-guava} -> 9999.0-empty-to-avoid-conflict-with-guava (c)
+--- androidx.lifecycle:lifecycle-runtime:{strictly 2.2.0-alpha01} -> 2.2.0-alpha01 (c)
+--- androidx.lifecycle:lifecycle-common:{strictly 2.2.0-alpha01} -> 2.2.0-alpha01 (c)
+--- androidx.arch.core:core-common:{strictly 2.1.0-beta01} -> 2.1.0-beta01 (c)
+--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.0-alpha02} -> 1.1.0-alpha02 (c)
+--- androidx.collection:collection:{strictly 1.1.0-alpha03} -> 1.1.0-alpha03 (c)
+--- androidx.concurrent:concurrent-futures:{strictly 1.0.0-alpha02} -> 1.0.0-alpha02 (c)
+--- androidx.lifecycle:lifecycle-extensions:{strictly 2.2.0-alpha01} -> 2.2.0-alpha01 (c)
+--- androidx.arch.core:core-runtime:{strictly 2.1.0-beta01} -> 2.1.0-beta01 (c)
+--- androidx.fragment:fragment:{strictly 1.1.0-alpha05} -> 1.1.0-alpha05 (c)
+--- androidx.viewpager:viewpager:{strictly 1.0.0} -> 1.0.0 (c)
+--- androidx.customview:customview:{strictly 1.0.0} -> 1.0.0 (c)
+--- androidx.loader:loader:{strictly 1.0.0} -> 1.0.0 (c)
+--- androidx.lifecycle:lifecycle-livedata:{strictly 2.2.0-alpha01} -> 2.2.0-alpha01 (c)
+--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.2.0-alpha01} -> 2.2.0-alpha01 (c)
+--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.2.0-alpha01} -> 2.2.0-alpha01 (c)
+--- androidx.activity:activity:{strictly 1.0.0-alpha05} -> 1.0.0-alpha05 (c)
+--- androidx.savedstate:savedstate:{strictly 1.0.0-alpha02} -> 1.0.0-alpha02 (c)
+--- androidx.lifecycle:lifecycle-process:{strictly 2.2.0-alpha01} -> 2.2.0-alpha01 (c)
+--- androidx.lifecycle:lifecycle-service:{strictly 2.2.0-alpha01} -> 2.2.0-alpha01 (c)
+--- androidx.lifecycle:lifecycle-viewmodel-ktx:{strictly 2.1.0-alpha02} -> 2.1.0-alpha02 (c)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-android:{strictly 1.1.1} -> 1.1.1 (c)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-core:{strictly 1.1.1} -> 1.1.1 (c)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-core-common:{strictly 1.1.1} -> 1.1.1 (c)
+--- androidx.appcompat:appcompat:{strictly 1.0.2} -> 1.0.2 (c)
+--- androidx.cursoradapter:cursoradapter:{strictly 1.0.0} -> 1.0.0 (c)
+--- androidx.legacy:legacy-support-core-utils:{strictly 1.0.0} -> 1.0.0 (c)
+--- androidx.documentfile:documentfile:{strictly 1.0.0} -> 1.0.0 (c)
+--- androidx.localbroadcastmanager:localbroadcastmanager:{strictly 1.0.0} -> 1.0.0 (c)
+--- androidx.print:print:{strictly 1.0.0} -> 1.0.0 (c)
...
+--- androidx.room:room-runtime:{strictly 2.1.0-rc01} -> 2.1.0-rc01 (c)
+--- androidx.room:room-common:{strictly 2.1.0-rc01} -> 2.1.0-rc01 (c)
+--- androidx.sqlite:sqlite-framework:{strictly 2.0.1} -> 2.0.1 (c)
+--- androidx.sqlite:sqlite:{strictly 2.0.1} -> 2.0.1 (c)
+--- com.jakewharton.timber:timber:{strictly 4.7.1} -> 4.7.1 (c)
+--- org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.3.30
| \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.30
| \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.3.30
+--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.30
...
+--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.1.1 (*)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.1.1 (*)
+--- androidx.room:room-runtime:2.1.0-rc01
| +--- androidx.room:room-common:2.1.0-rc01
| | \--- androidx.annotation:annotation:1.1.0-rc01
| +--- androidx.sqlite:sqlite-framework:2.0.1
| | +--- androidx.annotation:annotation:1.0.2 -> 1.1.0-rc01
| | \--- androidx.sqlite:sqlite:2.0.1
| | \--- androidx.annotation:annotation:1.0.2 -> 1.1.0-rc01
| +--- androidx.sqlite:sqlite:2.0.1 (*)
| +--- androidx.arch.core:core-runtime:2.0.1 -> 2.1.0-beta01 (*)
| +--- androidx.core:core:1.0.0 -> 1.1.0-alpha05 (*)
| \--- androidx.collection:collection:1.0.0 -> 1.1.0-alpha03 (*)
答案 0 :(得分:3)
从最初的查找中,您的某些依赖项很旧。请尝试由我运行并测试的以下设置。
Android Studio:3.4.1
build.gradle(项目)
dependencies {
classpath 'com.android.tools.build:gradle:3.4.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.31"
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.1.0-alpha05"
classpath 'com.google.gms:google-services:4.2.0'
}
build.gradle(应用程序)
android {
compileSdkVersion 29
defaultConfig {
targetSdkVersion 29
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
kapt 'com.google.dagger:dagger-android-processor:2.23.1'
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.31"
implementation 'androidx.core:core-ktx:1.0.2'
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0-alpha01'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0-alpha01'
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0-alpha01'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.0.0'
kapt 'androidx.lifecycle:lifecycle-compiler:2.2.0-alpha01'
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
//DI
implementation 'org.koin:koin-android:1.0.2'
implementation 'org.koin:koin-androidx-scope:1.0.2'
implementation 'org.koin:koin-androidx-viewmodel:1.0.2'
implementation 'org.greenrobot:eventbus:3.1.1'
//Coroutines
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.1.1'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.1.1'
//Database
implementation 'androidx.room:room-runtime:2.1.0'
kapt 'androidx.room:room-compiler:2.1.0'
testImplementation 'androidx.room:room-testing:2.1.0'
}
答案 1 :(得分:1)
您已注释掉room-ktx
依赖性,但是我认为您没有更改实际的实现。该依赖关系并未删除,而是重命名为implementation 'androidx.room:room-ktx:' + room_version
。因此,只需添加它以启用对 Room 的 Coroutine 支持。
ALG(m,n)
1. if m > n then
2. return ALG(m - n, n)
3. else if n > m then
4. return ALG(n, m)
5. else
6. return n
答案 2 :(得分:1)
让我们考虑尝试以下方法:
使用以下内容删除与房间相关的所有依赖关系,这些依赖关系是最新的:The Room Documentation
implementation 'androidx.room:room-common:2.1.0'
implementation 'androidx.room:room-compiler:2.1.0'
implementation 'androidx.room:room-runtime:2.1.0'
要考虑的第二件事是您正在复制具有不同版本的依赖项,当构建系统尝试执行其依赖项解析并导致误导性错误时,您可能会遇到问题,例如:
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0-alpha01'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.0.0'
一个就足够了,最好是稳定的。
如果您需要有关依赖项的信息,并将它们也迁移到androidx here is the migrating to androidx guide
答案 3 :(得分:1)
对于所有无法在此处编译的用户来说,这是一个小工作(希望是临时的)。
如果您将gradle版本切换回3.3.2
,则android studio应该会像平常一样编译,您可以保留所有其他依赖关系,也可以对其进行更新。
该设置对我有用:
dependencies {
classpath 'com.android.tools.build:gradle:3.3.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.3.0'
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.9.0"
classpath 'io.fabric.tools:gradle:1.+'
}
答案 4 :(得分:1)
我遇到了同样的问题,将OP的gradle文件与我的gradle文件进行比较,发现两者都包含
configurations {
cleanedAnnotations
compile.exclude group: 'org.jetbrains', module: 'annotations'
}
通过删除它,Room的注释处理开始工作。
答案 5 :(得分:0)
尝试将会议室版本更新为“ 2.1.0-rc01”。
def room_version = "2.1.0-rc01"
答案 6 :(得分:0)
我遇到了同样的问题,我可以通过更新数据库版本来解决它:
@Database(
entities = [...],
version = 4, exportSchema = true
)
问题是因为自动生成的架构是另一个解决方案,它可能是删除项目中schemas
文件夹中的旧架构,但是如果您的应用正在生产中,可能会造成一些麻烦。
答案 7 :(得分:0)
存在相同的问题,并且在依赖项下存在以下注释排除项(不知道为什么)
configurations {
compile.exclude group: 'org.jetbrains', module: 'annotations'
}
将其删除并成功运行。也许对您有帮助?
答案 8 :(得分:0)
有同样的问题。
从我的github上获取项目后发生。
依赖项/版本更改无效。
我所做的是删除了GitHub上除主要分支之外的所有分支,并从其余分支创建了新项目。
问题开箱即用。
答案 9 :(得分:0)
您必须包括该库:
implementation org.jetbrains:annotations-java5:19.0.0
由于通过kapt
插件通过注释生成的代码,因此使用org.jetbrains.annotations.NotNull
注释。
如果您将生成的Java类复制粘贴到您的类路径中,则会看到编译错误。
欢呼