저도 이것때문에 고생을 좀했는데요...
build.gradle에 아래에 네모칸 부분을 추가 해주시구요 from 에 초록색글씨는 질문자님에 프로젝트에 맞는 구조에 so파일들이 위치한 경로를 적어주시면됩니다.
task copyNativeLibs(type: Copy) {
from(new File('libs/')) { include '**/*.so' }
into new File('src/main/jniLibs')
}
tasks.withType(JavaCompile) { compileTask -> compileTask.dependsOn copyNativeLibs }
//clean.dependsOn 'cleanCopyNativeLibs'
tasks.withType(com.android.build.gradle.tasks.PackageApplication) {
pkgTask -> pkgTask.jniFolders = new HashSet<File>()
pkgTask.jniFolders.add(new File('src/main/jniLibs/'))
}
저는 삼성 libspen23에 .so 파일들을 읽는 것 했었는데요
프로젝트 에l ibs 폴더 안에 armeabi 폴더 안에 .so파일들 이 있었습니다.
이걸 위에 gradle이 빌드할때 저 파일들을 jni형식으로 읽는 건지는 잘 모르겠습니다만.(제가 C는 해본적이 없어서)
java가 읽을수 있는 jni 형식으로 변환하여 src/mian/jniLibs 폴더로 컴파일된 .so파일들이 들어 가더라구요
jniLibs 폴더는 생성안해주셔도 task copyNativeLibs 여기 메소드 같은곳에서 폴더를 생성해줍니다.
그리고 꼭 src/mian/안에 컴파일된 .so 파일이 있어야 읽을수 있는것 같습니다.