我已经编写了我的C ++类,现在我必须创建库以在android上使用它们。一个类处理数据库,我事先准备好了(包括图片和字符串)。在Qt中它工作正常,因此代码很健壮。我在Eclipse中有我的Android项目,JNI似乎没问题,因为在运行时android不会崩溃。问题是数据库未命中。
有人能告诉我如何将它包含在项目中,以便通过构建apk文件来包含它吗?看过一个教程解释将它放入assets文件夹并创建一个扩展的Java类,但我不知道它是否也适用于i0m在JNI级别上使用查询调用(在C ++中)。
我以前很伤心,我没有错误,既没有编译,也没有运行时间。应用程序根本不起作用...因为没有数据库。当我将本机方法的定义留空时,它不会崩溃,因此这意味着对本机方法的调用工作正常。
一个例子,我在C ++课程中有:
bool Database::open() {
if (sqlite3_open(dataBaseName, &databaseConnection) == SQLITE_OK){
return true;
}
return false;
}
我用本机电话调用它:
JNIEXPORT void JNICALL Java_com_tamagotchi_ItemShop_openDatabase(JNIEnv *, jobject){
db->open();
}
...在java类上:
static {
System.loadLibrary("nativeLib");
}
public native void openDatabase();
更新: 我已经看到了一个示例,其中数据库包含在assets文件夹中,并且可以使用getResources()。getAssets()。open(“some_file”)访问该文件。问题是这是针对Java方面的,但我不想从Java端访问它,我需要使用nativelibrary从C ++ / JNI端访问它。
答案 0 :(得分:0)