我尝试使用外部SDK,其中包括jar文件和一些* .so文件。也有来自eclipse的示例项目,其中包含相同的文件。当我将项目导入android studio时,它工作正常,但是当我尝试将* .so文件从导入的项目复制到当前项目时,会导致错误UnsatisfiedLinkError
示例项目目标api 14,我的项目目标api27。我应该为当前项目提供ndk支持并重新编译此* .so文件,还是可以选择使用示例中的旧文件?
答案 0 :(得分:1)
1。在jniLibs
文件夹下创建一个名为main
的文件夹,结构如下图。
|–app:
|–|–src:
|–|–|–main
|–|–|–|–jniLibs
|–|–|–|–|–armeabi
|–|–|–|–|–|–.so Files
|–|–|–|–|–x86
|–|–|–|–|–|–.so Files
...
|–|–|–|–|–other abi folder such as armeabi-v7a
|–|–|–|–|–|–.so Files
将.jar文件放置在项目libs
文件夹中,并在module
build.gradle文件中添加以下行
依赖项{ 实施文件('libs / your_own.jar') }
一切正常。
已编辑:
一些android设备(模拟器)具有64位处理器,如果您的jinLibs没有arm64
子文件夹,则可以将此过滤器(abiFilters)添加到应用模块的build.gradle文件中:
defaultConfig {
...
ndk {
abiFilters "armeabi-v7a", "x86", "armeabi", "mips"
}
}
这将告诉应用程序仅在现有文件夹中使用.so文件。