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 コードで外部共有ライブラリを参照する他の方法はありますか?