2014-09-16 3 views
1

나는 팔 아키텍처를 위해 생성 한 정적 라이브러리 (libnative.a)를 가지고 있습니다. 이제 NDK를 사용하여 안드로이드 응용 프로그램에서 라이브러리를 사용하고 싶습니다. 내 Android.mk는안드로이드 프로젝트에 정적 라이브러리 가져 오기

LOCAL_STATIC_LIBRARIES := libnative 

내가 또한 System.loadLibrary를 ("경로 /에 /은/libnative.a")를 사용하여 자바 라이브러리를로드하려고하고있다;

java.lang.UnsatisfiedLinkError: Couldn't load libnative.a from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.testsdk-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.testsdk-2, /system/lib]]]: findLibrary returned null 

안드로이드 응용 프로그램에서 정적 라이브러리를로드에 제발 도와주세요 :

는하지만 오류가 얻을. 저는 이미 공유 라이브러리를 사용했습니다. 나는 .so 파일을로드하는 데 매우 익숙하다. 미리 감사드립니다.

답변

3

정적 라이브러리를로드 할 수 없습니다. 공유 라이브러리 만 실제로 APK에 포함되어 있으며 휴대 전화에 설치되어 있습니다. Android.mk에서 LOCAL_STATIC_LIBRARIES := libnative을 사용하여 공유 라이브러리를 빌드 할 때 정적 라이브러리를 포함 시키면 실제로 공유 라이브러리에 링크되어 공유 라이브러리에 정적 라이브러리의 모든 코드가 포함됩니다. 따라서 System.loadLibrary()을 사용하여 공유 라이브러리를로드하기 만하면됩니다.

+0

답변 주셔서 감사합니다 .. APK로 포장하지 않고 응용 프로그램에서 정적 라이브러리를 사용할 수 있습니까? 우리가 동적으로 장치의 어딘가에 거주 할 수있는 정적 라이브러리를 가리킬 수 있습니까? – Kishore

+1

아니, 그건 내가 아는 한 가능하지 않다. 정적 라이브러리는 공유 라이브러리를 빌드하는 중간 단계로만 사용할 수 있습니다. – mstorsjo

+0

다시 한번 감사드립니다 :) 당신은 내 의구심을 해소했습니다. :) – Kishore

관련 문제