I have a simple Android Xamarin project that uses a number of aars. These aars are each built into dlls and then included as references in the main app.
All worked great until we added Room database access to one of the aars. I have the Xamarin.AndroidX.Room.Common and Xamarin.AndroidX.Room.Runtime references added to the project.
Nevertheless I am getting the following error:
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)
The code that uses the database is Kotlin. Not sure if that makes any difference.