2

静的なLinux.aライブラリをAndroidに使用することを計画しています。次のリンクを使用して静的な.aファイルを作成しましたhttp://codingfreak.blogspot.in/2010/01/creating-and-using-static-libraries-in.html

Androidアプリケーションに次のAndroid.mkファイルがあります。

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE:= first-prebuilt
LOCAL_SRC_FILES:= libarith.a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
include $(PREBUILT_STATIC_LIBRARY)


include $(CLEAR_VARS)
LOCAL_MODULE := test-main
LOCAL_STATIC_LIBRARIES := first-prebuilt
LOCAL_SRC_FILES := native.cpp
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
include $(BUILD_SHARED_LIBRARY)

ndk-build r7bを使用してアプリケーションをビルドすると、次のエラーが発生します。

Сompile++ thumb  : test-main <= native.cpp
SharedLibrary  : libtest-main.so
/home/hiren/NDK-r7b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: /home/hiren/workspace/VideoTEST/obj/local/armeabi/libarith.a(addition.o): Relocations in generic ELF (EM: 3)
/home/hiren/workspace/VideoTEST/obj/local/armeabi/libarith.a: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
make: *** [/home/hiren/workspace/VideoTEST/obj/local/armeabi/libtest-main.so] Error 1

誰か助けてもらえますか、私は長い間立ち往生しています、ここで...よろしくお願いします。

4

1 に答える 1

1

Android 形式で静的ライブラリをビルドする必要があります。C++ スタティック ライブラリと android ndk のリンク エラー (エラー: ファイル形式が認識されない)も参照してください。

于 2012-04-06T09:34:16.767 に答える