Android Studio 中加载so库文件

在使用第三方库的时候,经常会遇到一些第三方的so库文件。

以前在Eclipse中,只需要将*.so 的文件放到libs文件目录下就行了。

可是在使用Android Studio的时候,却出了点小问题。记录一下,以备后面查阅:

首先,还是将*.so文件导入到libs文件目录下面。Android Studio使用的是gradle进行编译的。在bulid.gradle文件里面,你可以很清晰的看到如下代码:

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
}

所以我很直觉的加入so库的编译依赖,如下:

    compile fileTree(include: ['*.so'], dir: 'libs')

可是,这样子并不能正确的执行so的加载。运行的时候会报错。

经查阅,在gradle中编译.so只有在特定目录下才能生效,所以我们进行如下配置:

sourceSets {
    main {
        jniLibs.srcDirs = ['libs']
    }
}

将上述代码放到

android{
    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }
}