【问题标题】:Android, Share library dependencyAndroid,共享库依赖
【发布时间】:2012-02-24 23:25:38
【问题描述】:
  1. 我正在实现一个在 Android 上使用 LibAv/ffmpeg 的应用程序
  2. 我正在使用 JNI 与 Native 代码交互
  3. 我的“共享库”正在使用 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 异常

我的猜测是 libav*.so 依赖于应该添加到 APK 的其他库,但是,我不确定如何检测这些。 有什么工具可以检测依赖的共享库吗? (窗口 ddepends 等效)?

任何帮助将不胜感激。

~纳达夫

【问题讨论】:

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


    【解决方案1】:

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

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

    这适用于窗户。为您的操作系统更改 objdump 工具的路径。

    【讨论】:

      猜你喜欢
      • 2011-10-01
      • 2014-03-22
      • 1970-01-01
      • 2012-06-19
      • 2012-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多