Note that there are some explanatory texts on larger screens.

plurals
  1. POInclude sqlite database into a C++ JNI project
    text
    copied!<p>I've written my C++ classes and now I have to create the library to use them on android. One classes handles a database, which I've prepared in advance (it includes pictures and strings). In Qt it works fine, so the code is robust. I have my Android project in Eclipse, the JNI seems to be OK, since on runtime android does NOT crash. The problem is that the database misses. </p> <p>Can someone tell me how to include it into the project in such a way that it will be included by building the apk file? Have seen a tutorial which explains to put it into the assets folder and creates an extended Java class, but I don't know if it works also when i0m using the query calls on the JNI level (in C++).</p> <p>As I sad before, I have no errors, neither by compiling, nor by running time. The application simply doesn't work... because there is no database. When I leave the definition of the native methods blank, it does not crash, so it means the the call to the native method works fine.</p> <p>An Example, in the C++ class I have: </p> <pre><code>bool Database::open() { if (sqlite3_open(dataBaseName, &amp;databaseConnection) == SQLITE_OK){ return true; } return false; } </code></pre> <p>I call it with the native call: </p> <pre><code>JNIEXPORT void JNICALL Java_com_tamagotchi_ItemShop_openDatabase(JNIEnv *, jobject){ db-&gt;open(); } </code></pre> <p>... On the java class: </p> <pre><code>static { System.loadLibrary("nativeLib"); } public native void openDatabase(); </code></pre> <hr> <p>UPDATE: I've seen an example where the database is included in the assets folder, and the the file is accessible using getResources().getAssets().open("some_file"). The problem is that this is for the Java side, but i don't nedd to access it from the Java side, i need to access it from the C++/JNI side using the nativelibrary.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload