gpt4 book ai didi

java - 如何在android项目中包含sqlite4java

转载 作者:行者123 更新时间:2023-11-29 20:52:07 24 4
gpt4 key购买 nike

我正在尝试在我的 android 项目中使用 sqlite4java。以下屏幕截图显示了我的项目设置:

My Project setup

如您所见,我已将 jar 文件复制到我的 libs 文件夹中,并将其包含在构建路径中。我还根据 sqlite4java 的文档复制了文档和 src 文件。我下载的 zip 文件还包含一个名为 libsqlite4java-android-i686.so 的库文件,我将其包含在 libs 目录中。当我尝试运行我的项目时(它会编译而不会提示)我得到的是以下错误消息:

03-04 07:37:13.251: W/System.err(2419): 
com.almworks.sqlite4java.SQLiteException: [-91] cannot load library:
java.lang.UnsatisfiedLinkError: Couldn't load sqlite4java-android-i686
from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data
/app/de.redhouse24.android-2.apk"],nativeLibraryDirectories=[/data
/app-lib/de.redhouse24.android-2, /system/lib]]]: findLibrary returned
null

如您所见,无法找到文件 sqlite4java-android-i686.so。作为 wiley,我将 libsqlite4java-andriod-i686.so 文件重命名为 sqlite4java-android-i686.so,这就是为什么我的项目结构显示该文件的名称。 TBH,我重命名它是因为我在这个讨论中找到了建议:
https://code.google.com/p/sqlite4java/issues/detail?id=42

我还尝试在构建路径中包含 so 文件,但这只是阻止了我的项目编译。

我的问题:我需要做什么才能在我的 android 项目中使用 sqlite4java?

我使用的是 mac 和带 adt 的 eclipse,如果这有什么不同的话。

最佳答案

首先,重命名库对你没有帮助。不要重命名库,保留原名。

其次,那里只有 686-lib。如果您打算在基于原子的设备以外的设备上运行您的应用程序,则还必须为其他架构添加 so 文件。每个架构的 so-files 驻留在 libs 目录下的子目录中,如下所示:

libs/x86
libs/armeabi
libs/armeabi-v7a

把你的 libsqlite4java-android-i686.so 文件放在那里,还有它可能需要的其他 .so 文件作为依赖项,它应该可以工作。

将源代码和文档包含到 libs 文件夹中有点让我困惑。这只会使您的最终 apk 文件膨胀,应该避免这种情况。您的用户将会感激不尽。

关于java - 如何在android项目中包含sqlite4java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28859864/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com