如何从android使用c lib(.so)?

时间:2016-07-01 12:37:34

标签: android c android-studio android-ndk shared-libraries

目前我正在使用Android NDK并在 jni 中成功实现C代码,并在android studio 1.5上使用jni调用c代码。

但是现在按照我的项目要求,我没有在我的android项目中使用c代码,所以我只使用 .so 共享库

我得到了这个link并使用了 sqlcipher ,但我还没有足够的知识来了解如何添加或调用.so共享库。

参考上面的链接和示例,更新我的项目但是收到错误后

java.lang.UnsatisfiedLinkError:dlopen失败:" /data/app/com.abc.xyz-2/lib/arm/libV1.so"有不好的ELF魔法

问题:

  1. 如何从android调用.so共享库。

  2. 如何在我的项目中包含.so文件。

1 个答案:

答案 0 :(得分:1)

首先阅读我的答案,添加* .so库:

https://stackoverflow.com/a/33164947/3626214

现在,请阅读此处如何解决Android 6.X设备上的java.lang.UnsatisfiedLinkError: dlopen failed:,因为当您添加* .so库时,您将在此设备上收到错误:

<强>的build.gradle

android
        {

            //23 or higher
            compileSdkVersion 23
            buildToolsVersion "23.0.3"


 defaultConfig
                    {
                        ...
                        //important code, write API 22
                        targetSdkVersion 22
                       ...
                    }

...
}