java.lang.UnsatisfiedLinkError

2015. 1. 22. 14:30Programming/Android

안드로이드 스튜디오에서 다음 맵 지도를 붙이려고 하는데 자꾸 아래와 같은 에러가 발생한다.




딱히 다음 지도 api에서도 그와 관련된 문구가 없고 딸랑 아래 사진과 같이 lib 3개만 붙이면 된다고 나와있다.




아... 시키는대로 했는데 도대체 모가 문제지...

해당 에러로 검색을 하다가 해결책이 나온 사이트를 발견!!


글의 요지는 안드로이드 스튜디오에서는 .so파일을 찾지 못해서 생기는 문제이고,

.so파일을 jar로 압축시켜준 후 jar를 import 해주면 해결된다는 것이었다.


여기서 주의 사항이 있는데 해당 .so파일만 jar로 바꾸면 안되고 lib폴더까지 통째로 포함해서 jar가 완성되어야 한다.

즉, jar파일 안에는 lib/armeabi/libDaumMapEngineApi.so 파일이 존재해야 하는 것이다.


jar로 바꿀때는 zip으로 압축을 한 다음 확장자만 .jar로 변경하면 된다. (참 쉽죠~)


해당 jar를 import를 하니 에러 없이 다음 지도가 잘 생성되었다.

이런건 다음 지도 api 사이트에도 명시를 하란 말이지...   


  • 프로필사진
    Xenon542019.02.07 10:55 신고

    E/AndroidRuntime: FATAL EXCEPTION: main
    Process: kr.xenon54.enjoybt, PID: 14213
    java.lang.UnsatisfiedLinkError
    at net.daum.mf.map.n.api.NativeMapLibraryLoader.loadLibrary(NativeMapLibraryLoader.java:39)
    at net.daum.mf.map.n.api.NativeThread.<clinit>(NativeThread.java:6)
    at android.opengl.alt.GLSurfaceView.setRenderer(GLSurfaceView.java:302)
    at net.daum.android.map.MapView.init(MapView.java:43)
    at net.daum.android.map.MapView.<init>(MapView.java:50)
    at net.daum.mf.map.api.MapView.<init>(MapView.java:445)
    at com.example.kakaomapapi.MainActivity.onCreate(MainActivity.java:15)
    at android.app.Activity.performCreate(Activity.java:6975)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
    at android.app.ActivityThread.-wrap11(Unknown Source:0)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
    at android.os.Handler.dispatchMessage(Handler.java:105)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:6541)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

    계속 나옵니다...ㅠㅠ 혹시 방법이 있나요? ㅠㅠ