2014-12-10 16 views
0

안녕하세요, 저는 NDK 및 C/C++ 개발에 안드로이드 응용 프로그램을 처음 사용했습니다. 내 안드로이드 응용 프로그램에서 C/C++로 안드로이드 응용 프로그램을 컴파일하는 데 문제가 있습니다 .. 내 sqlite에 대한 몇 가지 사용자 지정 라이브러리를 추가했습니다. 아무도 내 프로젝트에 무슨 일이 일어나고 있는지 설명 할 수 있고 뭔가 내 MK 파일로 구성해야합니까? 난 내 실행 시작했을 때 여기여기 armeabi 파일 (C 라이브러리)을 추가 할 때 armeabi-v7a 라이브러리가 제거되었습니다. Android.mk 파일에 누락 된 것이 있습니까?

내 Android.mk이

APP_PLATFORM := android-8 

#WHAT DO I NEED.. 
APP_ABI := armeabi armeabi-v7a 
#TARGET_ARCH  = arm 
#TARGET_ARCH_ABI = armeabi-v7a 

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 

LOCAL_MODULE := ExtFunc 
LOCAL_SRC_FILES := extension-functions.c 
LOCAL_SRC_FILES += sqlite3.c 
LOCAL_SHARE_LIBRARIES := sqlite3 

include $(BUILD_SHARED_LIBRARY) 


include $(CLEAR_VARS) 

LOCAL_MODULE := ProximityAPI 
LOCAL_SRC_FILES := ProximitySearch.c 
LOCAL_SRC_FILES += sqlite3.c 
LOCAL_SHARE_LIBRARIES := sqlite3 

include $(BUILD_SHARED_LIBRARY) 

Here is my Library Structure

파일입니다 = armeabi armeabi-V7A : 난 내 MK 파일 APP_ABI이 추가 컴파일시 armeabi-v7a 라이브러리 이 자동으로 제거됩니다.

나는 일이 두 라이브러리가 다른 프로젝트에서 일하고 취소하려면 NDK R10b에게

을 사용하지만 난 그들을 결합 할 때 내 안드로이드 응용 프로그램을 컴파일에 armeabi-V7A에서 내 여기-지도 라이브러리를 제거했습니다.

누군가가 나를 혼란스럽게 할 수 있기를 바랍니다.

고마워요!

+0

_ "내 MK 파일을 구성해야하는 항목이 있습니까?"_ 사용자가 현재 Android.mk를 질문에 포함해야한다고 판단 할 수 있습니다. – Michael

+0

나를 고쳐 주셔서 감사합니다. – DreamBigAlvin

+0

일을 명확히하기 위해 APP_ABI를 Application.mk에 넣어야합니다. Android.mk에서 아키텍처를 지정해야하는 경우 다음 예가 있습니다. 'LOCAL_SRC_FILES : = 3rdparty/$ (TARGET_ARCH_ABI)/liba.so' – Alto

답변

0

APP_ABI는 jni 폴더 내의 Application.mk 파일로 이동해야합니다. 기본적으로 존재하지 않을 수도 있으므로 만들면됩니다. 또한 ARM 전용으로 빌드하는 경우 명시 적으로 지정할 필요가 없습니다. x86과 같은 다중 아키텍처를 목표로한다면 APP_ABI 매개 변수를 추가 할 수 있습니다.