2011-10-12 2 views
2

이 프로젝트를 사용하여 컴파일 한 libcrypto.a에 대해 정적으로 링크하는 NDK로 Android 용 JNI 라이브러리를 컴파일했습니다. 동적으로 링크하는 https://github.com/fries/android-external-openssl libdl.so. 나는 안드로이드 나는 다음과 같은 오류가 2.1에서 내 라이브러리를로드하려고 할 때 NDKs 플랫폼/안드로이드-X/아치 팔은/usr/lib 디렉토리는 안드로이드의 모든 버전에 대한 libdl.so을 가지고 있지만dlopen 할 수 없습니다. android 2.1에서 라이브러리를로드 할 수 없습니다. 2.2 이상에서 가능합니다.

:

Trying to load lib /data/data/package.name/lib/libmylibrary.so 0x44e83a28 
Unable to dlopen(/data/data/package.name/lib/libmylibrary.so): Cannot load library: reloc_library[1244]: 30 cannot locate 'dladdr'... 
다음은 UnsatisfiedLinkError를 함께 충돌로 진행하지만, 2.2 내 원시 라이브러리 링크를 완벽하게

나에게 일어나고 또는 해결 방법을하는 무슨에 어떤 생각을 작동?

답변

2

그래서()은 다음과 같습니다

NDK의 changes.html의 관련 라인 2.2의 C 라이브러리에 추가 된 나는 libdl 안드로이드 dladdr의 모든 버전에 존재하는 동안 발견 한이 문제를 조사하는 동안 :

- C Library changes: 

For android-8 (a.k.a. Android 2.2): 
    - add DL_info and dladdr(). 
+0

어떻게 해결 했습니까? 이것은 2.2+를 사용한다는 것을 의미합니까? – jgoldberg

+0

예 2.2 이상을 사용해야합니다. –

관련 문제