Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
  • Help Room /
avatar image
0
Question by Ebamber1 · Jul 15, 2019 at 06:35 PM · androidsqlitedllnotfoundexception

DllNotFoundException: sqlite3 on OnePlus 7 (Android 9)

I'm running into a problem opening a connection on SQL Lite 3 for Android 9 devices. If anyone could help it'd be much appreciated.

Logcat error dump:

  07-15 19:25:54.573 17006 17063 E Unity   : The connection original database timed out:FILE:jar:file:///data/app/Test01.TinyProductions.SatelliteScramble-0GsiyBEDcgggr5RPeginBg==/base.apk!/assets/GameRepo.s3db
     07-15 19:25:54.573 17006 17063 E Unity   :
     07-15 19:25:54.573 17006 17063 E Unity   : (Filename: ./Runtime/Export/Debug.bindings.h Line: 45)
     07-15 19:25:54.573 17006 17063 E Unity   :
     07-15 19:25:54.575 17006 17063 E Unity   : DllNotFoundException: sqlite3
     07-15 19:25:54.575 17006 17063 E Unity   :   at (wrapper managed-to-native) Mono.Data.Sqlite.UnsafeNativeMethods.sqlite3_open_v2(byte[],intptr&,int,intptr)  

    CPU: Snapdragon 855  
    Android version: 9

The game is working on another test device I've got handy (lower android version) and in Unity Editor on Windows, I've got all of my DLLs set up and have the necessary libsqlite3.so files (for both x86 and ARM architectures) under directories:

 Android>libs>x86  
 Android>libs>armeabi-v7a  

respectively.

According to the sqlite API, sqlite3 should work up to API level 27 (my best guess is that since this Android version is on API 28 sqlite hasn't yet released an update for this API level). If this is the case, can anyone suggest any alternatives to SQL Lite?

An Example from DatabaseManager.cs

In the below, you can see GetConnection:String and Start:Void - two example methods in which a connection to my database should be established. This is working on lower versions of Android OS and in Windows, but not on the Android 9 device and currently unconfirmed on iPhone (though I should be getting confirmation by the end of the month).

 String GetConnection() {
         String conn, path = "";
         switch (Application.platform) {
             case RuntimePlatform.Android:
                 { 
                     path = "URI=file:" + Application.persistentDataPath;
                     conn = Path.Combine(path, "GameRepo.s3db");
                     if (!File.Exists(conn)) {
 
                         WWW load = new WWW("jar:file://" + Application.dataPath + "!/assets/GameRepo.s3db");
                         try
                         {
                             while (!load.isDone)
                             {
                                 if (timer > loadTimeout)
                                 {
                                     throw new FileLoadException("The connection original database timed out", load.url);
                                 }
                                 timer += Time.deltaTime;
                             }
 
                             File.WriteAllBytes(Application.persistentDataPath + "/GameRepo.s3db", load.bytes);
                         }
                         catch (FileLoadException e) {
                             Debug.LogError(e.Message + ":FILE:" + e.FileName);
                         }
                     }
                     break;
                 }
             case RuntimePlatform.OSXPlayer:
                 {
                     path = "URI=file:" + Application.dataPath + "/Raw";
                     conn = Path.Combine(path, "GameRepo.s3db");
                     break;
                 }
             default:
                 {
                     path = "URI=file:" + Application.dataPath + "/StreamingAssets";
                     conn = Path.Combine(path, "GameRepo.s3db");
                     break;
                 }
         }
         return conn;
     }
 
     void Start()
     {
         conn = GetConnection();
         Debug.Log(conn);
         dbconn = (IDbConnection)new SqliteConnection(conn);
         dbconn.Open(); //Open connection to the database.
         IDbCommand dbcmd = dbconn.CreateCommand();
         string sqlQuery = "SELECT * FROM Puzzle";
         dbcmd.CommandText = sqlQuery;
         IDataReader reader = dbcmd.ExecuteReader();
         while (reader.Read())
         {
             string puzzleName = reader.GetString(0);
             int difficulty = reader.GetInt32(1);
             string buttonSpriteUrl = reader.GetString(2);
             int puzzleID = reader.GetInt32(3);
         }
         reader.Close();
         reader = null;
         dbcmd.Dispose();
         dbcmd = null;
         dbconn.Close();
         dbconn = null;
     }

Expection: I should be able to connect to an SQLite database on my Android device. Whenever I need to generate a new puzzle piece, I should be able to get the URL to that puzzle piece from my database, along with some information on the puzzle. Whenever I add a player to my device's high scores list, they are added there.

Reality: Whenever a connection to SQLite is "opened", I get the DLLNotFoundException, even though all of the necessary dlls are on my system, and all of the correct libs directories have been configured correctly with libsqlite.so for both ARM and x86 architectures

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

306 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

How To Read data in SQLite4Unity3D using IDataReade? 0 Answers

Advice on transferring a unity project to android studio. 0 Answers

*SOLVED* Problem with Android SQLite in APK, dont run in Android device 4 Answers

Sqlite On Android Does not work with unity 0 Answers

How to read a database (sqlite) on Android? 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges