linux(Ubuntu 환경)에서 .so파일을 생성한 뒤 Windows의 Android studio에 추가해주었습니다.
app>src>main>jniLib>{ABI(armeabi, arbeabi-v7a, x86)}>libmain.so
그리고 .so 파일을 .zip파일로 압축한 후 .jar로 형식을 바꿔준 뒤 app>libs>main.jar에 추가하였습니다.
그리고 app/build.gradle에
ndk {
abiFilters "armeabi", "armeabi-v7a", "x86"
}
packagingOptions {
exclude '/lib/armeabi/libgnustl_shared.so'
exclude '/lib/armeabi-v7a/libgnustl_shared.so'
exclude '/lib/x86/libgnustl_shared.so'
}
sourceSets{
main{
jni.srcDirs = []
jniLibs.srcDirs 'libs'
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
task deleteOldJar(type: Delete) {
delete 'libs/main.jar'
}
//task to export contents as jar
task exportJar(type: Copy) {
from('build/intermediates/bundles/debug/') // or build/intermediates/bundles/release/
into('libs/')
include('classes.jar')
///Give whatever name you want to give
rename('classes.jar', 'main.jar')
}
exportJar.dependsOn(deleteOldJar, build)
추가하고 gradle.properties에
android.useDeprecatedNdk=true
추가한 후
static {
System.loadLibrary("main");
}
이 부분에서
java.lang.UnsatisfiedLinkError: dlopen failed: library "libgnustl_shared.so" not found
이런 Error가 나는데 뭐 혹시 빠트린 부분이 있는건가요?