System.DllNotFoundException: Unable to load DLL 'sqlite3'

Our application environment
Uwp, hololens2, arm architucture
I have a scenario, where I am using sqlite3 for my local DB. In the recent update of SQLite, we have only dll for x86 & x64. Uwp-arm support is not found. Instead, it had arm64-v8a & armeabi-v7a. While using that .so files inside unity and have changed the import settings below 8704548--1175307--upload_2023-1-4_19-26-44.png

after this when i tried to build for Hololens2, i was not able to do any operation w.r.to DB. it shows exceptions as

System.DllNotFoundException: Unable to load DLL 'sqlite3': The specified module could not be found.
at Trimble.SQLite.NativeMethods.sqlite3_open_v2 (System.Byte[ ] filename, System.IntPtr& db, System.Int32 flags, System.IntPtr zvfs) [0x00000] in <00000000000000000000000000000000>:0

And have tried the approach of using the target include

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<PropertyGroup>
<DisableTrimleSql3Deploy Condition="'$(DisableTrimleSql3Deploy)' == ''">true</DisableTrimleSql3Deploy>
</PropertyGroup>

<Target Name="CopySqlite3Binaries" BeforeTargets="AfterBuild">
<ItemGroup>
<arm Include="$(MSBuildThisFileDirectory)libs\WSA\arm\libtc_sqlite3.so" />
</ItemGroup>

<Message Text="Copying sqlite3 binaries to output folder" />
<Copy SourceFiles="@(arm)" DestinationFolder="$(TargetDir)ARM\" SkipUnchangedFiles="true" />
</Target>
</Project>

after this, I couldn’t proceed further. any help would be appreciated. thanks

You cannot run .so files on Windows. Those are probably meant for Android. Your only option is to recompile sqlite3.dll for UWP from source code yourself.

1 Like