简体   繁体   English

在android studio项目中添加Sqlite4java

[英]adding Sqlite4java in android studio project

I have a requirement to retrieve larger images which is limited by Cursor limit(1 Mb) in android's native sqlite support.我需要检索受 android 原生 sqlite 支持中的 Cursor limit(1 Mb) 限制的较大图像。

I am trying to use sqlite4java in my android studio project but am facing issues loading the native library.我正在尝试在我的 android studio 项目中使用 sqlite4java,但在加载本机库时遇到了问题。

My project libs(C:\\Users\\admin\\AndroidStudioProjects\\appname\\libs) folder has the following files:我的项目 libs(C:\\Users\\admin\\AndroidStudioProjects\\appname\\libs) 文件夹包含以下文件:

在此处输入图片说明

    armeabi\libsqlite4java-android-armv5tejl.so
    armeabi-v7a\libsqlite4java-android-armv7l.so
    x86\libsqlite4java-android-i686.so
    libsqlite4java-linux-amd64.so
    libsqlite4java-linux-i386.so
    libsqlite4java-osx.dylib
    sqlite4java.jar
    sqlite4java-docs.zip
    sqlite4java-src.zip
    sqlite4java-win32-x64.dll
    sqlite4java-win32-x86.dll

When I run the command "java -jar sqlite4java.jar" on the Terminal:当我在终端上运行命令“java -jar sqlite4java.jar”时:

I get the error:我收到错误:

Error: Unable to access jarfile sqlite4java.jar错误:无法访问 jarfile sqlite4java.jar

Nonetheless I can use the classes in my code;尽管如此,我可以在我的代码中使用这些类; but when I try to open a database connection I get the exception:但是当我尝试打开数据库连接时,出现异常:

com.almworks.sqlite4java.SQLiteException: [-91] cannot load library:java.lang.UnsatisfiedLinkError:dalvik.system.PathClassLoader[DexPathList[[zip file"/data/app/diary.appname-2/base.apk"],nativeLibraryDirectories=[/vendor/lib,/system/lib]]]couldn't find "libsqlite4java-android-armv7l.so" com.almworks.sqlite4java.SQLiteException: [-91] 无法加载库:java.lang.UnsatisfiedLinkError:dalvik.system.PathClassLoader[DexPathList[[zip file"/data/app/diary.appname-2/base.apk"] ,nativeLibraryDirectories=[/vendor/lib,/system/lib]]] 找不到“libsqlite4java-android-armv7l.so”

"libsqlite4java-android-armv7l.so" is already present in the folder "libs\\armeabi-v7a". “libsqlite4java-android-armv7l.so”已存在于文件夹“libs\\armeabi-v7a”中。

What can I do to use sqlite4java in my project?我该怎么做才能在我的项目中使用 sqlite4java?

I finally found a solution.我终于找到了解决方案。

I've made a lib (not libs) folder and inside it I've moved the folders armeabi , armeabi-v7a and x86 .我创建了一个lib (不是 libs)文件夹,在里面我移动了文件夹armeabiarmeabi-v7ax86

I then zipped the lib folder into lib.zip, renamed it to armeabi.lib and converted it to .jar .然后我将 lib 文件夹压缩到 lib.zip 中,将其重命名为 armeabi.lib 并将其转换为 .jar

This I've placed in My project libs(C:\\Users\\admin\\AndroidStudioProjects\\appname\\libs) folder:这我已经放在我的项目库(C:\\Users\\admin\\AndroidStudioProjects\\appname\\libs)文件夹中:

    armeabi.jar
    libsqlite4java-linux-amd64.so
    libsqlite4java-linux-i386.so
    libsqlite4java-osx.dylib
    sqlite4java.jar
    sqlite4java-docs.zip
    sqlite4java-src.zip
    sqlite4java-win32-x64.dll
    sqlite4java-win32-x86.dll

armeabi.jar has the lib folder. armeabi.jar 有 lib 文件夹。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM