SQLitePCL.raw icon indicating copy to clipboard operation
SQLitePCL.raw copied to clipboard

Could not load list of method overrides due to Method not found: int SQLitePCL.ISQLite3Provider.sqlite3_win32_set_directory(int,string)'

Open ThomasLoidolt opened this issue 6 years ago • 5 comments

Since my last update to version 2.0.0 I didn't get the SQLitePCLRaw to run on Xamarin for Android.

At the point of SQLitePCL.Batteries_V2.Init() I got the exception as in the header meant. Before I removed the SQLitePCLRaw.provider.e_sqlite3.android package because 2.0.0 isn't supported and I ran into the exception "Failed to resolve System.String SQLitePCL.raw::sqlite3_column_name(SQLitePCL.sqlite3_stmt,System.Int32)" if the sqlite-net-pcl calls the raw api.

"sqlite-net-pcl" 1.6.258-beta "SQLitePCLRaw.bundle_green" 2.0.1 "SQLitePCLRaw.core" 2.0.1 "SQLitePCLRaw.lib.e_sqlite3" 2.0.1 "SQLitePCLRaw.lib.e_sqlite3.android" 2.0.1

ThomasLoidolt avatar Sep 16 '19 13:09 ThomasLoidolt

sqlite-net has not yet been updated for compatibility with SQLitePCLRaw 2.0. If you're using sqlite-net, you need to stay with SQLitePCLRaw 1.1.14 for now.

ericsink avatar Sep 16 '19 14:09 ericsink

and what's about the SQLitePCLRaw.provider.e_sqlite3.android package? Should there be version 2.0 in future?

ThomasLoidolt avatar Sep 17 '19 08:09 ThomasLoidolt

The SQLitePCLRaw.provider.e_sqlite3.android package does not exist in 2.0, but the same functionality is provided by other packages.

Since 2.0 reduces the number of packages, the easiest way to upgrade is to remove all the SQLitePCLRaw packages and then bring in one of the SQLitePCLRaw.bundle_ packages and allow it to transitively bring in its dependencies. You will end up with different package ids, but the functionality is the same.

FWIW, this (and all nuget package operations) works best with PackageReference instead of packages.config.

ericsink avatar Sep 17 '19 13:09 ericsink

The SQLitePCLRaw.provider.e_sqlite3.android package does not exist in 2.0, but the same functionality is provided by other packages.

Since 2.0 reduces the number of packages, the easiest way to upgrade is to remove all the SQLitePCLRaw packages and then bring in one of the SQLitePCLRaw.bundle_ packages and allow it to transitively bring in its dependencies. You will end up with different package ids, but the functionality is the same.

FWIW, this (and all nuget package operations) works best with PackageReference instead of packages.config.

Hi, in my application I'm using microsoft.data.sqlite.core 5.0.5 that requires SQLitePCLRaw.core >= 2.0.4. How can I make all things works? If I update to microsoft.data.sqlite.core verision 5.0.5 the error Could not load list of method overrides due to Method not found: int SQLitePCL.ISQLite3Provider.sqlite3_win32_set_directory(int,string) is trigger.

I can't use the older version.

Thank you.

MattePozzy avatar Apr 13 '21 08:04 MattePozzy

If the sqlite3_win32_set_directory() function is only present on Windows, why this wrapper tries to get its pointer on other platforms?

Check here

This makes it impossible to use the dynamic provider on Mac

Also, it should not fallback to another sqlite library if the one I am trying to load fails due to the above. In another words: the wrapper is loading another instance, not the one I am asking it to load

kroggen avatar Jun 07 '21 04:06 kroggen

Closing old/stale issue.

ericsink avatar Sep 23 '22 01:09 ericsink