【问题标题】:Why does Room show me that AppDatabase_Impl does not exist error?为什么 Room 显示 AppDatabase_Impl 不存在错误?
【发布时间】:2018-06-26 02:47:55
【问题描述】:

01-17 14:25:21.567 5084-5084/? E/AndroidRuntime: 致命异常: main 进程:com.example.harv.swat,PID:5084 java.lang.RuntimeException:无法启动活动 组件信息{com.example.harv.swat/com.example.harv.swat.HomeActivity}: java.lang.RuntimeException:找不到实现 com.example.harv.swat.model.AppDatabase。 AppDatabase_Impl 没有 存在 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2696) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2757) 在 android.app.ActivityThread.-wrap12(ActivityThread.java) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1504) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:163) 在 android.app.ActivityThread.main(ActivityThread.java:6237) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:877) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 引起:java.lang.RuntimeException:找不到实现 com.example.harv.swat.model.AppDatabase。 AppDatabase_Impl 没有 存在 在 android.arch.persistence.room.Room.getGeneratedImplementation(Room.java:92) 在 android.arch.persistence.room.RoomDatabase$Builder.build(RoomDatabase.java:454) 在 com.example.harv.swat.model.Db.(Db.java:16) 在 com.example.harv.swat.model.Db.getInstance(Db.java:20) 在 com.example.harv.swat.HomeActivity.onCreate(HomeActivity.java:28) 在 android.app.Activity.performCreate(Activity.java:6847) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2649) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2757) 在 android.app.ActivityThread.-wrap12(ActivityThread.java) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1504) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:163) 在 android.app.ActivityThread.main(ActivityThread.java:6237) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:877) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

public class Db {
AppDatabase adb;
private static Db db;

private Db(Context context){
    adb = Room.databaseBuilder(context,
            AppDatabase.class, "swat").allowMainThreadQueries().build();
}
public static Db getInstance(Context context){
    if(db==null){
        db = new Db(context);
    }
    return db;
}
public MyDAO getDao(){
    return adb.userDao();
}}

DOA 类

@Dao
public interface MyDAO {
@Query("SELECT * FROM content")
List<Content> getAll();

@Query("SELECT * FROM content WHERE id IN (:userIds)")
List<Content> loadAllByIds(int[] userIds);

/*@Query("SELECT * FROM user WHERE first_name LIKE :first AND "
        + "last_name LIKE :last LIMIT 1")
Content findByName(String first, String last);*/

@Insert
void insertAll(Content... users);

@Delete
void delete(Content user);}

Gradle 文件

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'

// ViewModel and LiveData
implementation "android.arch.lifecycle:extensions:1.0.0"
implementation "android.arch.lifecycle:common-java8:1.0.0"
//annotationProcessor "android.arch.lifecycle:compiler:1.0.0"

// Room
implementation "android.arch.persistence.room:runtime:1.0.0"
annotationProcessor "android.arch.persistence.room:compiler:1.0.0"

// Test helpers for Room
testImplementation "android.arch.persistence.room:testing:1.0.0"
}

【问题讨论】:

  • 您是否使用 RoomDatabase 扩展了 AppDatabase?
  • 你有解决这个问题的办法吗?

标签: android android-room


【解决方案1】:

进行更改时可能没有重新生成文件。也许尝试重建项目:Build -> Rebuild

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-04
    • 2014-01-03
    • 2016-09-06
    • 2022-06-13
    • 2019-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多