Android,共享库依赖

时间:2012-02-02 09:45:19

标签: android ffmpeg android-ndk java-native-interface libav

  1. 我正在实现在Android上使用LibAv / ffmpeg的应用程序
  2. 我正在使用JNI与Native代码进行交互
  3. 我的'Shared Lib'正在使用libswscale.so,libavutil.so,libavformat.so,libavdevice.so,libavcore.so和libavcodec.so。
  4. 所有“共享库”都经过验证,打包到APK文件的同一目录
  5. 我正在设备上调试(没有模拟器)
  6. Runtime.loadLibrary($ MY_LIB_NAME)触发UnsatisfiedLinkError异常
  7. 直接运行'System.loadLibrary(“swscale”)'也会导致UnsatisfiedLinkError异常
  8. 我的猜测是libav * .so依赖于应该添加到APK的其他库,但是,我不知道如何检测这些。 有没有工具来检测依赖的共享库? (窗口ddepends相当于)?

    任何帮助将不胜感激。

    〜Nadav

1 个答案:

答案 0 :(得分:0)

您可以使用objdump工具列出所需的共享库:

<ANDROID_NDK_ROOT>\toolchains\arm-linux-androideabi-4.4.3\prebuilt\windows\bin\arm-linux-androideabi-objdump -p libNAME.so | grep NEEDED

这是针对Windows的。更改操作系统的objdump工具路径。