执行org.jetbrains.kotlin.gradle.internal.KaptExecution> java.lang.reflect.InvocationTargetException时发生故障无错误消息

如何解决执行org.jetbrains.kotlin.gradle.internal.KaptExecution> java.lang.reflect.InvocationTargetException时发生故障无错误消息

Android Studio给出了错误:

Execution failed for task ':app:kaptDebugKotlin'.
> A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution
   > java.lang.reflect.InvocationTargetException (no error message)

我想添加我的项目Kotlin Coroutines并将其与Room数据库一起使用。但是添加所有库后,我得到了这个错误。这些都是来自编译器的信息。

我已经确定,这是因为有@Database注释。如果我删除了此注释,则不会出现错误,但Room也不起作用。

我的gradle文件:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
//apply plugin: 'androidx.navigation.safeargs'

kotlin {
    experimental {
        coroutines 'enable'
    }
}

android {
    compileSdkVersion 29
    defaultConfig {
        applicationId "com.bestcred.coursetthree"
        minSdkVersion 21
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        //vectorDrawables.useSupportLibrary = true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
        }
    }

    // Enables data binding.
    buildFeatures {
        dataBinding true
    }
}

dependencies {


    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

    // Support libraries
    implementation "androidx.appcompat:appcompat:1.2.0"
    implementation 'com.google.android.material:material:1.2.0'
    implementation "androidx.fragment:fragment:1.2.5"
    implementation "androidx.constraintlayout:constraintlayout:2.0.0"

    // Android KTX
    implementation 'androidx.core:core-ktx:1.3.1'

    // Room and Lifecycle dependencies
    implementation "androidx.room:room-runtime:$room_version"
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    kapt "android.arch.persistence.room:compiler:$room_version"

    // Kotlin Extensions and Coroutines support for Room
    implementation "androidx.room:room-ktx:$room_version"

    // Coroutines
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutine_version"
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutine_version"

}

kotlin_version = "1.4.0"
room_version = "2.2.5"
coroutine_version = '1.3.9'

我更新了Room版本并添加了Kotlin Coroutines。有什么问题?

enter image description here

解决方法

Android Studio的用户界面只是隐藏错误...

发生错误时,它会在列表视图中突出显示该项目,并在终端视图中显示无用的消息。 unhelpful error message appears when erroneous item is selected

要找到真正的错误,请在列表视图中选择根项,以便Android Studio在终端视图中显示整个构建输出,然后滚动以查找错误。 helpful error message appars when you select the root item from the list view on the left

,

您需要更改:

kapt "android.arch.persistence.room:compiler:$room_version"

kapt "androidx.room:room-compiler:$room_version"
,

如果您在房间数据库 Doa 实体类上犯了一些错误,就会发生此异常 例如我在实体类中犯了错误

  1. 我已将Entity类的自动生成字段设置为val而不是var
  2. 我在两个具有不同名称的函数上添加了删除批注,但是它们正在删除相同的数据

因此,如果您导入了正确的依赖项,我建议您仔细检查实体,dao或数据库类。

@Entity(tableName = "user_table")
data class User(
    val firstName: String,val lastName: String,val age: Int
) {
    @PrimaryKey(autoGenerate = true)
    var id: Int = 0 //**do not made it val**
}
,

我在 Apple Silicon Macbook M1 上开发。

使用 room_version 2.2.4, 2.2.5 失败

def room_version = "2.2.4"

implementation "androidx.room:room-runtime:$room_version"
kapt "androidx.room:room-compiler:$room_version"
implementation "androidx.room:room-ktx:$room_version"
testImplementation "androidx.room:room-testing:$room_version"
,

确保在数据库注释中包含所有实体

,

此问题发生在包重命名 我已将所有文件从一个包拖放到另一个包中。

Objectbox 它创建了光标文件和实体文件(自动生成的文件)

不得不删除它们并重新构建。

连续吃了1个小时-_-

,

我在 build.gradle 脚本文件中将 Room 版本从 2.2.5 更新到 2.3.0 或当前版本。构建成功。

,

今天我遇到了这个错误。就我而言,我的笔记本电脑中同时安装了 java 11 和 java 16,java 16 是默认的。但是我项目中的 gradle 使用 java 11 来构建它。所以当我调用

$ gradle build

在我的终端中,它将使用 java 16,因此构建失败。我知道,正确的解决方案是使我的代码与 java 16 兼容,但是现在,我使用以下命令明确告诉 gradle 使用 java 11:

$ gradle build -Dorg.gradle.java.home=/usr/lib/jvm/java-11-openjdk-amd64 # warning: use te path to your java 11 

由于它是一个大命令,我将它保存在一个脚本文件中,因此只需运行脚本即可解决问题。

,

我不得不将Room更新为最新的2.2.5,它已经解决了该问题。

,

我也遇到过同样的问题。问题是因为我在Room DAO中使用了协程暂停函数,而没有实现必要的实现。以下对我有用,请尝试将现有的Room依赖项替换为:

def room_version = "2.2.5" //Use latest version

"androidx.room:room-runtime:$room_version"
"androidx.room:room-compiler:$room_version"
"androidx.room:room-ktx:$room_version"

如果上述方法不起作用,请转到“分析”->“检查代码”,并检查是否存在代码中断警告或错误(特定于房间)

,

在我的例子中,我给了 insertAll() 和 delete() 函数的参数类型作为你的数据库的实体,错误解决

@Dao
interface NotesDao {

    @Insert
    fun insertAll(INotesEntity: NotesEntity) // argument type should be entity of your database

    @Delete
    fun delete(DNotesEntity: NotesEntity)    // argument type should be entity of your database

}
,

我可能会迟到,但只有以下解决方案对我有用。

在 Android Studio 中打开 gradle.properties 文件。

添加以下几行:

kapt.use.worker.api=false
kapt.incremental.apt=false

清理并重新构建应用程序。

完成

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 <select id="xxx"> SELECT di.id, di.name, di.work_type, di.updated... <where> <if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 <property name="dynamic.classpath" value="tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -> systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping("/hires") public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate<String
使用vite构建项目报错 C:\Users\ychen\work>npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-