Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java DatabaseManager_Impl不是抽象的,并且不会覆盖RoomDatabase中的抽象方法clearAllTables()_Java_Android_Kotlin - Fatal编程技术网

Java DatabaseManager_Impl不是抽象的,并且不会覆盖RoomDatabase中的抽象方法clearAllTables()

Java DatabaseManager_Impl不是抽象的,并且不会覆盖RoomDatabase中的抽象方法clearAllTables(),java,android,kotlin,Java,Android,Kotlin,生成此代码时,显示生成错误: DatabaseManager_Impl不是抽象的,并且不重写抽象 方法clearAllTables()在RoomDatabase中 build.gradle: implementation 'android.arch.persistence.room:runtime:1.0.0' kapt 'android.arch.persistence.room:compiler:1.0.0' implementation 'android.arch.persistence.

生成此代码时,显示生成错误:

DatabaseManager_Impl不是抽象的,并且不重写抽象 方法clearAllTables()在RoomDatabase中

build.gradle:

implementation 'android.arch.persistence.room:runtime:1.0.0'
kapt 'android.arch.persistence.room:compiler:1.0.0'
implementation 'android.arch.persistence.room:rxjava2:1.0.0'
implementation 'android.arch.persistence.room:guava:1.1.0-beta3'
按照房间指南实施数据库:

@Database(entities = {Task.class}, version = 1)
public abstract class DatabaseManager extends RoomDatabase {
    private static final String DATABASE =
                         Iterables.getLast(Splitter.on(".").trimResults().split(BuildConfig.APPLICATION_ID)).concat("-db");
    private static volatile DatabaseManager instance;

    public abstract TaskDao taskDao();

    synchronized public static DatabaseManager onInstance(Context context)     {
        if (instance == null) {
            instance = newInstance(context, false);
        }
        return instance;
    }

    public static DatabaseManager newInstance(Context context, boolean memoryOnly) {
        RoomDatabase.Builder<DatabaseManager> builder;

        if (memoryOnly) {
            builder = Room.inMemoryDatabaseBuilder(context.getApplicationContext(), DatabaseManager.class);
        } else {
            builder = Room.databaseBuilder(context.getApplicationContext(), DatabaseManager.class, DATABASE);
        }

        return builder.fallbackToDestructiveMigration().build();
    }

}
@数据库(实体={Task.class},版本=1)
公共抽象类DatabaseManager扩展了RoomDatabase{
私有静态最终字符串数据库=
getLast(Splitter.on(“.”).trimResults().split(BuildConfig.APPLICATION_ID)).concat(“-db”);
私有静态易失性数据库管理器实例;
公共摘要TaskDao TaskDao();
同步的公共静态数据库管理器onInstance(上下文){
if(实例==null){
instance=newInstance(上下文,false);
}
返回实例;
}
公共静态数据库管理器newInstance(上下文上下文,布尔内存){
RoomDatabase.Builder;
如果(记忆中){
builder=Room.inMemoryDatabaseBuilder(context.getApplicationContext(),DatabaseManager.class);
}否则{
builder=Room.databaseBuilder(context.getApplicationContext(),DatabaseManager.class,DATABASE);
}
返回builder.fallbackToDestructiveMigration().build();
}
}

我的解决办法是将所有的room Library版本更改为
1.0.0


还要确保使用
kapt
而不是
annotationprocessor

我也有同样的问题,并且意识到

//room
    implementation "android.arch.persistence.room:runtime:${arch_version}"
    kapt "android.arch.persistence.room:compiler:${arch_version}"
    implementation "android.arch.persistence.room:rxjava2:${arch_version}"

这些依赖项应具有相同的版本。它们要么都是1.0.0,要么都是1.1.0。不同的版本会导致问题。

您是否尝试将
android.arch.persistence.room:guava:1.1.0-beta3
更改为
android.arch.persistence.room:guava:1.0.0
@Roman?非常感谢@szymon wysocki,这有助于我解决问题。这个问题有没有解决方法?还没有更新?完美的答案。对我来说,是android.arch.persistence.room编译器的版本错了。太好了。谢谢您节省了我的时间:)谢谢,这是一个完美的答案,问题已经解决。在将android.arch.persistence.room:guava:1.1.0-beta3更改为android.arch.persistence.room:guava:1.0.0后,问题已经解决。