美文网首页
WordDatabase_Impl does not exist

WordDatabase_Impl does not exist

作者: 筱南独舞 | 来源:发表于2020-05-20 14:23 被阅读0次

    在kotlin项目中使用Androidx中的room实现数据库存储的时候,编译运行的时候报了这个错误:(WordDatabase_Impl does not exist)

    2020-05-19 14:31:40.591 31419-31419/com.nan.custom_view E/AndroidRuntime: FATAL EXCEPTION: main
        Process: com.nan.custom_view, PID: 31419
        java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nan.custom_view/com.nan.custom_view.DaoActivity}: java.lang.RuntimeException: cannot find implementation for com.nan.custom_view.dao.WordDatabase. WordDatabase_Impl does not exist
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2949)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3027)
            at android.app.ActivityThread.-wrap11(Unknown Source:0)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1745)
            at android.os.Handler.dispatchMessage(Handler.java:106)
            at android.os.Looper.loop(Looper.java:200)
            at android.app.ActivityThread.main(ActivityThread.java:6956)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:836)
         Caused by: java.lang.RuntimeException: cannot find implementation for com.nan.custom_view.dao.WordDatabase. WordDatabase_Impl does not exist
            at androidx.room.Room.getGeneratedImplementation(Room.java:94)
            at androidx.room.RoomDatabase$Builder.build(RoomDatabase.java:952)
            at com.nan.custom_view.DaoActivity.onCreate(DaoActivity.kt:28)
            at android.app.Activity.performCreate(Activity.java:7225)
            at android.app.Activity.performCreate(Activity.java:7216)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1215)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2902)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3027) 
            at android.app.ActivityThread.-wrap11(Unknown Source:0) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1745) 
            at android.os.Handler.dispatchMessage(Handler.java:106) 
            at android.os.Looper.loop(Looper.java:200) 
            at android.app.ActivityThread.main(ActivityThread.java:6956) 
            at java.lang.reflect.Method.invoke(Native Method) 
            at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:836) 
    

    解决方法:(在APP的build.gradle中添加)

    apply plugin: 'kotlin-kapt'
    ...
    dependencies {
        kapt   "androidx.room:room-compiler:2.2.5"//版本看情况吧
    }
    

    再次编译,又报了这个错:

    e: [kapt] An exception occurred: java.util.NoSuchElementException: Collection contains no element matching the predicate.
    

    检查代码发现某个Entity有一个无参构造方法,这个构造方法需要删除了。

    相关文章

      网友评论

          本文标题:WordDatabase_Impl does not exist

          本文链接:https://www.haomeiwen.com/subject/dtyhuhtx.html