2

我有一个通用共享本机库,它与现有的用于各种 ARM 版本和扩展的其他共享库链接。我必须在运行时切换使用哪一个。我的 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