0

Android アプリでサードパーティの静的ライブラリを使用しようとしています。.a lib は x86 用にビルドされており、PC Linux ボックスで問題なく使用できました。

次に、この Android.mk を使用して Android で使用しようとします。

LOCAL_PATH:= $(call my-dir)

# first lib, which will be built statically
#
include $(CLEAR_VARS)

LOCAL_MODULE    := libtwolib-first
LOCAL_SRC_FILES := rwl.a
LOCAL_MODULE_SUFFIX := .a

include $(PREBUILT_STATIC_LIBRARY)

# second lib, which will depend on and include the first one
#
include $(CLEAR_VARS)

LOCAL_MODULE    := libtwolib-second
LOCAL_SRC_FILES := second.c

LOCAL_STATIC_LIBRARIES := libtwolib-first

include $(BUILD_SHARED_LIBRARY)

次のエラーが表示されます。

could not read symbols: File in wrong format

.a ファイルが x86 でコンパイルされており、arm 用にビルドしているためですか?

.a ファイルはレガシーであり、おそらくソースから再コンパイルすることはできません。これが問題である場合、他の解決策はありますか?

ありがとう。

4

1 に答える 1

0

サードパーティ ライブラリのソースを取得し、それをネイティブ Android の NDK にクロスコンパイルして、バイナリ互換性を持たせる必要があります。

x86 静的ライブラリを Android の NDK ビルドにドロップするだけでは機能しません。

于 2012-08-11T13:27:26.043 に答える