0

Android アプリケーションで外部共有ライブラリを使用する際に問題に直面しています。以下のように Android.mk ファイルを作成しました。

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := MyApp
LOCAL_SRC_FILES := myexternallib.so
include $(PREBUILT_SHARED_LIBRARY)

ndk-build を使用すると、ローカルのネイティブ ライブラリを生成でき、このネイティブ ライブラリをSystem.loadLibraryメソッドで使用できます。アプリケーションを実行すると、エラーが発生しますjava.lang.UnsatisfiedLinkError: Cannot load library: reloc_library[1486]: 2659 unknown reloc type 19 @ ( 4220)

さらに検索すると、Android ツールチェーンを使用して共有ライブラリを構築することを推奨するリンクが見つかりました。そこで、Android ソース コードarm-eabi-gccのディレクトリにある ツールチェーンの 1 つを使用しprebuilt/linux_x86/toolchain/arm-eabi-4.4.3/binて、ソース ファイルをビルドしました。エラーが発生しますarm-eabi-gcc: error trying to exec 'cc1': execvp: No such file or directory。また、ツールチェーン フォルダーに という名前のファイルがないことにも気付きましたcc1

私は正しい手順に従っていますか?Android コードで外部共有ライブラリを参照する他の方法はありますか?

4

1 に答える 1

0

Android ツールチェーンを使用する必要があるのは事実です。

Android NDK には、ツールキャッシュの使用に関する詳細な手順が付属しています: http://source-android.frandroid.com/ndk/docs/STANDALONE-TOOLCHAIN.html。このドキュメントについて具体的な質問がある場合は、遠慮なく質問してください。

于 2012-09-13T07:02:08.817 に答える