如何在android中使用SQLite c接口库
我将使用sqlite c打开数据库作为参考 我是这样打电话的如何在android中使用SQLite c接口库,android,c++,sqlite,android-ndk,java-native-interface,Android,C++,Sqlite,Android Ndk,Java Native Interface,我将使用sqlite c打开数据库作为参考 我是这样打电话的 package com.example.offline; public class NativeLib { static { System.loadLibrary("sqlite3"); } public native int sqlite3_open(String filename,Object sqlite3); } 正如文件所说 int sqlite3_o
package com.example.offline;
public class NativeLib {
static {
System.loadLibrary("sqlite3");
}
public native int sqlite3_open(String filename,Object sqlite3);
}
正如文件所说
int sqlite3_open(
const char *filename, /* Database filename (UTF-8) */
sqlite3 **ppDb /* OUT: SQLite db handle */
);
logcat中的错误
12-12 14:49:15.645: W/dalvikvm(3265): No implementation found for native Lcom/example/offline/NativeLib;.sqlite3_open:(Ljava/lang/String;Ljava/lang/Object;)I
所以我的问题是我们可以在java中创建sqlite c对象吗
这是我的Android.mk文件
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := sqlite3
LOCAL_SRC_FILES := sqlite3.c
include $(BUILD_SHARED_LIBRARY)
Thanx guys你的jni方法是什么?调用本机sqlite3_open(字符串文件名,对象sqlite3)找不到语言c sqlite3_open(const char*filename,sqlite3**ppDb)。c接口将不起作用,方法甚至没有公开。暴露的SQLite接口被包装在中。您检查过了吗?为什么日志说找不到本机方法12-12 16:50:48.980:E/AndroidRuntime(2094):java.lang.unsatifiedLinkError:找不到本机方法:com.shabdkosh.offline.NativeLib.sqlite3_open:(Ljava/lang/String;Ljava/lang/Object;)i若要使用C,您必须在NDK中编译sqlite3.C,并且不知何故(我不知道)在JNI中公开接口。谢谢@LS_dev,但我已经成功地使用ndk创建了.so(二进制)文件。在这之后,只有我得到了一个问题:正确,有没有其他方法调用sqlite3_打开(const char*filename,sqlite3**ppDb)。你需要知道如何编写jni。这不是很难。在google中搜索并执行。但是编写jni的简单方法是,你可以使用swig。