代码之家  ›  专栏  ›  技术社区  ›  theblitz

将Room添加到Android Xamarin项目

  •  1
  • theblitz  · 技术社区  · 3 年前

    我有一个简单的Android Xamarin项目,它使用了许多AR。 这些aar都内置到dll中,然后作为引用包含在主应用程序中。

    所有工作都很好,直到我们将Room数据库访问添加到其中一个aar。 我有Xamarin。AndroidX。房间Common和Xamarin。AndroidX。房间已将运行时引用添加到项目中。

    尽管如此,我还是得到了以下错误:

    java.lang.NoSuchMethodError: No direct method <init>(Landroidx/room/RoomDatabase;Ljava/util/Map;Ljava/util/Map;[Ljava/lang/String;)V in class Landroidx/room/InvalidationTracker; or its super classes (declaration of 'androidx.room.InvalidationTracker' appears in base.apk)
        at roomstorage.database.Database_Impl.createInvalidationTracker(Database_Impl.java:153)
        at androidx.room.RoomDatabase.<init>(RoomDatabase.java:104)
        at roomstorage.database.Database.<init>(Database.java:20)
        at roomstorage.database.Database_Impl.<init>(Database_Impl.java:34)
        at java.lang.Class.newInstance(Native Method)
        at androidx.room.Room.getGeneratedImplementation(Room.java:91)
        at androidx.room.RoomDatabase$Builder.build(RoomDatabase.java:667)
        at roomstorage.database.DataModule.createDatabase(DataModule.java:38)
        at roomstorage.database.DataModule.getDatabaseInstance(DataModule.java:25)
    

    使用数据库的代码是Kotlin。不确定这是否有什么不同。

    0 回复  |  直到 3 年前