We are using SqliteBitmapTileCache and our project was targeting Android 4.3 so until now everything was working correctly.
We need to upgrade the targeting android version to the last 8.1 and got an exception about libsqlite.so
Any idea to resolve this issue ? Does anyone have a working sample project targeting android 7+ with SqliteBitmapTileCache ?
The SqliteBitmapTileCache don’t related with Android, it’s a common class, I think you should have the code about this class so you can double check that.
And it looks the reference of this class is our package https://www.nuget.org/packages/MapSuiteDependency-SQLiteCore/, the reference of it is System.Data.SQLite.Core.1.0.102.0, you can try to reference the latest version System.Data.SQLite.Core.1.0.108.0 and see whether it works well with Android 8.1.
And you can get the exception information and did some research to see whether can find some useful information about it.
Please make sure whether your project reference our other package ThinkGeo.MapSuite.Layers.SqliteForMono, and replace any sqlite related package to the latest version of System.Data.SQLite.Core.
We don’t have the sample for Android about SqliteBitmapTileCache, please try whether it’s the dll reason first.
ThinkGeo.MapSuite.Layers.SqliteForMono was not installed, but i got the same exception regarding unauthorize access to libsqlite.so after I install it.
I can’t install nuggets System.Data.SQLite.Core as it’s not compatible with android
Sure, thank you
In november it will be mandatory to target android 26 (8.0) to publish to the market, so i’m sure your sample will be helpfull for all of us
It compile and execute well, but i don’t see any improvement in loading tiles the second time, so I’m not sure the cache is really used.
I modified your sample to load osmoverlay, and on the second run I deactivate data. No tiles are loaded so I belive the cache doesn’t work when targeting android 7+
And to reproduce the error, just add a second parameter to the new SqliteBitmapTileCache constructor, for example new SqliteBitmapTileCache(“data/default.db”, “testId”);
I just open your project and it’s targeting android version 4.4 (in tab Android Manifest).
Could you try with :
Minimum Android Version 4.3
Target Android Version 7
Google Play will require that new apps target at least Android 8.0 (API level 26) from August 1, 2018, and that app updates target Android 8.0 from November 1, 2018.
So basically, in approx 40 days, no one will be able to publish a new app containing mapsuite cache on the android play store… I hope the futur version will come very soon.
{System.DllNotFoundException: SqliteForAndroid
at (wrapper managed-to-native) Mono.Data.Sqlite.UnsafeNativeMethods.sqlite3_open_v2(byte[],intptr&,int,intptr)
at Mono.Data.Sqlite.SQLite3.Open (System.String strFilename, Mono.Data.Sqlite.SQLiteOpenFlagsEnum flags, System.Int32 maxPoolSize, System.Boolean usePool) [0x00052] in :0
at Mono.Data.Sqlite.SqliteConnection.Open () [0x002c4] in :0
at ThinkGeo.MapSuite.Android.SqliteBitmapTileCache.set_CacheId (System.String value) [0x00026] in :0
at ThinkGeo.MapSuite.Android.SqliteBitmapTileCache…ctor (System.String databasePathFilename, System.String cacheId) [0x0001d] in :0
at ArpentGIS.Droid.MapControler.AddOSM (System.Boolean immRefresh) [0x00019] in C:\patrickribault\D3E\ArpentGIS.AndroidV11\MapControler.cs:1771
at ArpentGIS.Droid.MapControler.Init () [0x00065] in C:\patrickribault\D3E\ArpentGIS.AndroidV11\MapControler.cs:1000 }
We did some testing with the beta040 version, it works fine. We have attached the test sample, please try again.
If there is any issue, please let us know that.