gpt4 book ai didi

android - native 库(.so 文件)未添加到 android 项目

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:29:31 26 4
gpt4 key购买 nike

我正在尝试使用 sqlitecipher需要使用 native 库的库。他们的教程非常简单,但对我不起作用。每次我收到以下错误:

FATAL EXCEPTION: main
java.lang.UnsatisfiedLinkError: Couldn't load stlport_shared from loader dalvik.system.PathClassLoader[dexPath=/data/app/org.example.test-2.apk,libraryPath=/data/app-lib/org.example.test-2]: findLibrary returned null
at java.lang.Runtime.loadLibrary(Runtime.java:365)
at java.lang.System.loadLibrary(System.java:535)
at net.sqlcipher.database.SQLiteDatabase.loadLibs(SQLiteDatabase.java:141)
at net.sqlcipher.database.SQLiteDatabase.loadLibs(SQLiteDatabase.java:136)

这意味着.so文件在编译过程中没有附加。

所有 3 个文件都存储在/libs/armeabi/目录中。

我假设问题是我使用 maven 来管理依赖项(构建是使用 Android Studio 执行的)。下一次尝试 - 将这些库包含到 Maven 依赖项中。根据documentation这很容易。我在公共(public)存储库中找不到它们,所以我使用了 <scope>system</scope>带有标签。它们是可见的,但没有用。后来找到this据说范围“系统”不起作用的链接,尝试使用

将这些库添加到本地存储库中
mvn install:install-file -DgroupId=net.sqlitecipher -DartifactId=stlport_shared -Dversion=1.0 -Dfile=libstlport_shared.so -Dpackaging=so -DgeneratePom=true

最后 - 它没有用。

我也看到了这个topic ,可能这是一个解决方案,但我目前不使用 gradle。有没有办法在不从 maven 移动到 gradle 的情况下将 .so 文件包含到 apk 中?

据我了解,Android Studio 在内部使用 gradle 来构建 apk,因此在 Maven 开始支持 native 库之前,我对 Maven 的所有努力都是无用的,对吗?我也尝试过使用 Intellij IDEA Cardea (13.0) 构建项目,不幸的是没有成功。

最佳答案

一旦本地库位于/libs/armeabi/中,您所要做的就是正确配置 android 插件。像这样:

<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<configuration>
<nativeLibrariesDirectory>${project.basedir}/libs</nativeLibrariesDirectory>
...
</configuration>
<extensions>true</extensions>
</plugin>

关于android - native 库(.so 文件)未添加到 android 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18173341/

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