我有一个简单的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。不确定这是否有什么不同。