Java 错误MyApplication执行任务失败';:app:kaptDebugKotlin';

Java 错误MyApplication执行任务失败';:app:kaptDebugKotlin';,java,android,kotlin,android-room,Java,Android,Kotlin,Android Room,我的应用程序中有一个错误,每次我看到我构建的项目出现时,我认为这与房间有关,但我无法解决它 日志: MyApplication.java package com.example.pokedex; import java.lang.System; d2 = {"Lcom/example/pokedex/MyApplication;", "Landroid/app/Application;", "()V", "dataBase

我的应用程序中有一个错误,每次我看到我构建的项目出现时,我认为这与房间有关,但我无法解决它

日志:

MyApplication.java

package com.example.pokedex;

import java.lang.System;

d2 = {"Lcom/example/pokedex/MyApplication;", "Landroid/app/Application;", "()V", "dataBase", 
"LAppDataBase;", "getDataBase", "()LAppDataBase;", "dataBase$delegate", "Lkotlin/Lazy;", 
"repository", "Lcom/example/pokedex/repository/PokedexRepository;", "getRepository", " 
()Lcom/example/pokedex/repository/PokedexRepository;", "repository$delegate", "app_debug"})
public class MyApplication extends android.app.Application {
    @org.jetbrains.annotations.NotNull()
    private final kotlin.Lazy dataBase$delegate = null;
    @org.jetbrains.annotations.NotNull()
    private final kotlin.Lazy repository$delegate = null;

    @org.jetbrains.annotations.NotNull()
    public final AppDataBase getDataBase() {   //  line where the error is being shown in the log
        return null;
    }

    @org.jetbrains.annotations.NotNull()
    public final com.example.pokedex.repository.PokedexRepository getRepository() {
        return null;
    }

    public MyApplication() {
        super();
    }
}
类AppDatabase

@Database(entities = [PokemonItem::class], version = 1, exportSchema = false)
abstract class AppDataBase: RoomDatabase() {
abstract fun pokemonDAO(): PokemonDAO

companion object {
    @Volatile
    private var INSTANCE: AppDataBase? = null
    fun getDataBase(context: Context): AppDataBase {
        return INSTANCE ?: synchronized(this) {
            val instance = Room.databaseBuilder(
                context.applicationContext,
                AppDataBase::class.java,
                "pokemon-db"
            )
                .build()
            INSTANCE = instance
            instance
        }
    }
   }
 }

自从我让AppDatabase执行数据持久化之后,这个错误就开始发生了,我以为问题出在gradle中,但从我看到的情况来看,我无法通过它的版本来修复它,它看起来非常错误。只需遵循谷歌文档:


下面是一个Variy basic应用程序的工作示例,它混合了Kotlin和Java,并包含一个房间数据库。它基于代码的基本思想/意图。然后,您可以对此进行扩展

Kotlin中的PokemonItem实体(表)类:-

@Entity
class PokemonItem {
    @PrimaryKey
    var id: Long? = null
    var name: String = ""
}
PokemonDao界面(Kotlin),只需一个查询即可提取所有内容(它的使用将创建数据库):-

一个活动(Java),它使用上述内容提取所有(由于未添加任何内容,因此未添加任何内容)口袋妖怪:-

public class MainActivity extends AppCompatActivity {

    AppDatabase pokemonDB;
    PokemonDao pokemonDao;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        pokemonDB = Room.databaseBuilder(
                this,
                AppDatabase.class,
                "poekmon.db"
        )
                .allowMainThreadQueries()
                .build();
        pokemonDao = pokemonDB.pokeMonDao();
        List<PokemonItem> pokemonItems = pokemonDao.getAllFromPokemonItem();
    }
}
public类MainActivity扩展了AppCompatActivity{
应用数据库口袋妖怪;
口袋妖怪口袋妖怪;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
pokemonDB=Room.databaseBuilder(
这
AppDatabase.class,
“poekmon.db”
)
.allowMainThreadQueries()
.build();
pokemonDao=pokemonDB.pokemonDao();
List pokemonItems=pokemonDao.getAllFromPokemonItem();
}
}
结果

运行并使用数据库检查器(Android Studio)显示:-

i、 e.它已编译并运行,并且由于试图打开数据库而创建了数据库

  • 请注意,.allowMainThreadQueries允许它在主线程上运行,并且为了简洁起见包含了它
:-


问题解决了,该类不在包中,因此它没有导入,因此,我指出了错误

package com.example.pokedex.dao

完成上述操作后,我在Main:private-AppDataBase pokemonDB;^上遇到了一个错误符号:class AppDataBase位置:class Main活动失败:生成失败,出现异常。*错误:任务的执行失败“:app:kaptDebugKotlin”。>执行org.jetbrains.kotlin.gradle.internal.KaptExecution>java.lang.reflect.InvocationTargetException时出错(无错误消息)
@Database(entities = arrayOf(PokemonItem::class),version = 1)
abstract class AppDatabase: RoomDatabase() {
    abstract fun pokeMonDao(): PokemonDao
}
public class MainActivity extends AppCompatActivity {

    AppDatabase pokemonDB;
    PokemonDao pokemonDao;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        pokemonDB = Room.databaseBuilder(
                this,
                AppDatabase.class,
                "poekmon.db"
        )
                .allowMainThreadQueries()
                .build();
        pokemonDao = pokemonDB.pokeMonDao();
        List<PokemonItem> pokemonItems = pokemonDao.getAllFromPokemonItem();
    }
}
package com.example.pokedex.dao