如何在android中使用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

我将使用sqlite c打开数据库作为参考

我是这样打电话的

    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。