Sqlite3.dll not found on specific Android devices

When trying to read a sqlite database on Android devices we received the following error:

Unable to find sqlite3.dll
DllNotFoundException: sqlite3.dll

We researched the problem and found a solution here:

http://forum.unity3d.com/threads/97043-Sqlite-for-Android-help-please?p=686204#13

The solution involves putting a file called libsqlite3.so in Plugins/Android/

This fixed the problem on some Android devices but not others. Specifically, we are now able to read the database on a Nexus 7, but not on a Kindle Fire HD.

The error message when running on Kindle Fire HD is the same (dll not found) as before.

Has anyone else had a similar problem where sqlite3.dll can be found only on specific Android devices?

Hi; all you have to do is download “C source code as an amalgamation” from SQLite Download Page.

Easiest way to compile is Visual Studio Community Edition (2015). Download it. Install cross platform extension too. It will download Android NDK tools, etc. In Visual Studio create a shared android dynamic library project and add “sqlite.c”, “sqlite.h”, “sqlite3ext.h” to project (leaving client code out.).

From project settings disable pre-headers. Set optimization for size. And compile for x86 and arm.

You will have to so files; place them under:

  • /Assets/Plugins/Android/libs/armeabi-v7a
  • /Assets/Plugins/Android/libs/x86

It is best to compile yourself to be sure code does not have extra modification. However; I am adding files I have compiled for myself. You can find files attached and try if it works for you.

Unfortunately not. We changed the way that we were getting data (now we’re parsing downloaded JSON) so I never had time to solve the issue before we had to move on.