2

NDK プロジェクトを通じて共有オブジェクト ファイルを Android OS イメージに含める作業を行っています。

android.mk ファイルは次のようになります。

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := Myaccessories
LOCAL_SRC_FILES := libMyaccessories.so

include $(PREBUILT_SHARED_LIBRARY)

そして、「libMyaccessories.so」をandroid.mkがあるjniフォルダーに追加しました。ndk-built では、以下のようなエラーが発生します

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

どうすればこれを解決できますか?

4

1 に答える 1

0

.so ファイルを libs/armeabi/ サブディレクトリに置くだけで、ビルドの一部として自動的に含まれます。ソースファイルではないため、LOCAL_SRC_FILES で言及しないでください。

そのライブラリが Java コードだけでなくネイティブ コードから参照されている場合は、LOCAL_LDLIBS にリストする必要があるかもしれませんが、これがデフォルトでない場合は非常に驚きます。

于 2012-02-09T06:51:03.523 に答える