2017-09-25 9 views
0

C++에서 AAssetManager (#include <android/asset_manager.h>)을 사용하는 정적 라이브러리를 구축하고 있으며 java 라이브러리를 사용합니다.NDK를 사용하여 asset_manager로 정적 라이브러리 빌드 r10e

것은 정적 라이브러리를 구축 할 때 내가 LOCAL_LDLIBS += -landroid를 사용할 수 없기 때문에 내가 libandroid을 포함 할 수있다.

어떻게 local_ldlibs를 사용하지 않고 내 정적 라이브러리를 구축 할 수 있습니다 (local_ldlibs는 항상 정적 라이브러리 무시됩니다)?

답변

1

정적 라이브러리를 만들 때 외부 참조를 만족시킬 필요는 없지만 누군가 라이브러리를 사용하는 경우에는 libandroid.so을 연결해야합니다. 이것을 라이브러리 문서에 넣을 수 있습니다.

Android.mk을 제공하는 경우 LOCAL_EXPORT_LDLIBS = -landroid을 설정할 수 있습니다. BTW에서 LOCAL_EXPORT_INCLUDES을 라이브러리의 공용 헤더가있는 디렉토리로 설정할 수도 있습니다.

어쨌든 NDK 10은 더 이상 사용되지 않습니다. android-3에 대한 지원이 절실히 필요하지 않는 한, 현재 릴리스로 이동하는 것이 좋습니다.

+0

확실히 r13/r14에'LOCAL_EXPORT_LDLIBS'을 추가했습니다. 네, NDK를 업데이트하십시오. –

+1

내 문제는 APP_PLATFORM을 지정하지 않았기 때문에 기본적으로 android-3 (아마도 NDK 10을 사용하고 있기 때문에)로 설정되었습니다. APP_PLATFORM을 android-9로 설정하면 문제가 사라졌습니다. –

+0

@DanAlbert : r10e에'EXPORT_LDLIBS'이 (가) 나타납니다. 나는 전체 역사를 조사하지 않았다. –