さまざまな ARM バージョンと拡張機能用に存在する他の共有ライブラリにリンクされている 1 つのユニバーサル共有ネイティブ ライブラリがあります。実行時にどちらを使用するかを切り替える必要があります。私の Android.mk はシンプルです:
include $(CLEAR_VARS)
LOCAL_MODULE := player
LOCAL_SRC_FILES := some_cpp_sources...
LOCAL_LDFLAGS := -L$(LOCAL_PATH)/../bin
LOCAL_LDLIBS := -llog -lz -lm –lplayer_engine
LOCAL_ALLOW_UNDEFINED_SYMBOLS := true
include $(BUILD_SHARED_LIBRARY)
問題は:
player_engine
リンク時に、メイン ライブラリが依存するネイティブ ライブラリ ( ) を指定する必要があります。player_engine
私はライブラリのより多くのバージョンを持っています- ライブラリは同じ名前でなければなりません。そうしないと、Android.mk スクリプトでそれらすべてを指定する必要があり
UnsatisfiedLinkError
、ARM のバージョンと拡張機能に従って正しいものだけをロードしようとすると例外が発生します。 - ビルド スクリプトは、libs フォルダーに armeabi および armeabi-v7a サブフォルダーのみを作成します。apk が作成されると、手動で作成されたその他のサブフォルダーは削除されます。
この問題を解決するには?