마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

기존에 잘돌아가던 소스가 UnsatisfiedLinkError 납니다

0 추천
안녕하세요

몇년전에 개발했던 어플이 UnsatisfiedLinkError 나면서 안돌아갑니다

libs/armeabi/*.so파일에 넣어두었는데 로드가안되는거 같은데요

2.1버전으로 개발(2.2도테스트해봄) 했던 소스이고 에뮬에서도 돌아가던 어플이였는데

 

그당시랑 달라진건 이클립스와 sdk가 좀바뀐거 말고는 없는거같은데

so파일이 문제인건지아님 머가 바뀐건지요..

 

error opening trace file: No such file or directory 라고 error메세지가 나오기는합니다
생초 (1,110 포인트) 님이 2013년 7월 18일 질문
생초님이 2013년 7월 18일 수정

2개의 답변

+1 추천
 
채택된 답변
로그가 있어야 정확한 원인을 알수 있겠지만.

ndk 빌드시 단말에 있는 so를 참조하는게 있다면,

해당 so 파일에 있어야 할 메소드가 다른데로 옮겨지거나.

파라메터 같은게 추가되어 심볼을 못 찾아 로드가 안되는 것일 겁니다.
사악미소 (65,330 포인트) 님이 2013년 7월 18일 답변
생초님이 2013년 7월 26일 채택됨
답변감사합니다 하지만 so파일도 당시쓰던거라 추가되거나변경된건없습니다..
테스트 하신 단말이 예전에 테스트하셨던 단말인가요?
다른 단말이라면 안드로이드 버젼에 따라 libc 같은것도 변경되었을 수 있습니다. ndk를 최신으로 변경 해서 빌드해보세요.
그리고 빌드옵션도 바꼈는지. cpucake 빌드시 나오는 로그를 보고 makefile을 만들어 so를 빌드했었는데 젤리빈 단말에서 so가 로드가 안되는 경우가 있어서 Android.mk 파일로 변경한적도 있는데. 참조 하시기 바랍니다.
마지막으로 그래도 안되고, so가 apk에 들어있다면, 해당 make파일을 보여주시면, 원인 파악에 도움이 될 듯 합니다.
네 확실히 단말도다르고 버전도다릅니다 2.2와 4.1단말.. 근데아쉬운건 so파일은있는데 소스는 저한테 없어서 새로빌드하기에는 어렵네요ㅜ.ㅡ 답변감사합니다~^^
0 추천
해결봤습니다

통신사에 배포했던 어플인데 기본어플인지라 패키지명을 변경해서 올렸는데...

패키지명을 변경하지않고 에뮬에다 올려보니 라이브러리로딩을 잘하네요

답변달아주신 사악미소님 감사합니다^^
생초 (1,110 포인트) 님이 2013년 7월 18일 답변
...