2

안녕하세요, NDK 프로젝트를 통해 Android 파일에 공유 오브젝트 파일을 포함시키고 있습니다.NDK 프로젝트에 미리 만들어진 공유 오브젝트 파일을 포함합니다.

android.mk 파일이

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 

LOCAL_MODULE := Myaccessories 
LOCAL_SRC_FILES := libMyaccessories.so 

include $(PREBUILT_SHARED_LIBRARY) 

모양과 나는 android.mk가있는 JNI 폴더에 "libMyaccessories.so"을 추가했습니다. NDK 구축에 , 그것은 누군가가이 문제를 건너 또는 다른 방법으로 저를 제시 한 경우

Prebuilt  : libMyaccessories.so <= jni/ 
Install  : libMyaccessories.so => libs/armeabi/libMyaccessories.so 
/home/Identive/Desktop/android-ndk-r7/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-strip: Unable to recognise the format of the input file `./libs/armeabi/libMyaccessories.so' 
make: *** [libs/armeabi/libMyaccessories.so] Error 1 
친절

도와 다음과 같다 오류가 발생합니다.

+0

FYI xyz.so는 공유 오브젝트 파일이 아닙니다. xyz.so ir 공유 라이브러리. 오브젝트 파일은 xyz.o 파일입니다. –

+0

그러면 공유 라이브러리 파일을 추가하는 방법은 무엇입니까 ??? – Britto

+0

아래의 로렌스는 무엇을해야할지를 기록했습니다. –

답변

0

.so 파일을 libs/armeabi/서브 디렉토리에 넣기 만하면 자동으로 빌드의 일부로 포함되어야합니다. 소스 파일이 아니기 때문에 LOCAL_SRC_FILES에서 언급하지 마십시오.

해당 라이브러리가 Java 코드가 아닌 원시 코드에서 참조되는 경우 LOCAL_LDLIBS에이 라이브러리를 나열해야하지만 기본값이 아닌 경우 매우 놀랍습니다.

+0

아직 android.mk 파일을 변경하면 ndk-build throws "입력 형식을 인식 할 수 없습니다"android.mk 파일 – Britto

+0

파일이 ARM 용 공유 라이브러리가 아닙니다. 공유 라이브러리는 어디에서 가져 왔습니까? –

관련 문제