Ruz*_*ard 9 android intellij-idea maven unsatisfiedlinkerror android-studio
我正在尝试使用需要使用本机库的sqlitecipher库.他们的教程非常简单,但对我来说不起作用.每次我收到以下错误:
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)
Run Code Online (Sandbox Code Playgroud)
它意味着.so文件在编译期间没有附加.
所有3个文件都存储在/ libs/armeabi /目录中.
我认为问题在于我使用maven来管理依赖项(无论如何都要使用Android Studio进行构建).下一次尝试 - 将这些库包含在maven依赖项中.根据文档,这很容易.我在公共存储库中找不到它们,所以我使用<scope>system</scope>
了标签.它们是可见的,但它不起作用.后来发现这个链接,据说范围"系统"不起作用,尝试将这些库添加到本地存储库中使用
mvn install:install-file -DgroupId=net.sqlitecipher -DartifactId=stlport_shared -Dversion=1.0 -Dfile=libstlport_shared.so -Dpackaging=so -DgeneratePom=true
Run Code Online (Sandbox Code Playgroud)
最后 - 它没有用.
我也看到了这个话题,可能这是一个解决方案,但我目前不使用gradle.有没有办法将.so文件包含到apk中,而无需从maven转移到gradle?
据我所知,Android Studio在内部使用gradle来构建apks,所以我对maven的所有努力都没用,直到他们开始支持本机库,我是对的吗?我还尝试用Intellij IDEA Cardea(13.0)构建项目,遗憾的是没有任何成功.
ben*_*n75 10
只要本机库在/ 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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9109 次 |
| 最近记录: |