2

さまざまな 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 が作成されると、手動で作成されたその他のサブフォルダーは削除されます。

この問題を解決するには?

4

0 に答える 0