2012-04-20 2 views
3
  1. Я строй Android проекта смешанного режима, проект с использованием нативного FFmpeg
  2. В Libs является
    2.1. libavutil.so -> libavutil.so.51
    2.2. libavcodec.so -> libavcodec.so.54
    2.3. libavformat.so -> libavformat.so.54
  3. Моего Java код включает следующий раздел JNI для загрузки родную LIBS:
    статического {
    System.loadLibrary ("avutil");
    System.loadLibrary ("avcodec");
    System.loadLibrary ("avformat");
    }
  4. 'libavcodec.so' зависит от 'libavutil.so.51' И НЕ на 'libavutil.so'.
  5. При запуске моей деятельности System.loadLibrary ("avcodec"); excepts с «не может загрузить необходимую библиотеку„libavutil.so.51“для„libavcodec.so“(„libavutil.so.51“библиотеки не найден)»
  6. На моем Android.mk У меня есть следующий раздел чтобы родные ЛИЭС добавлен в АПК:

    включает $ (CLEAR_VARS)
    LOCAL_MODULE: = MyLib
    LOCAL_SRC_FILES: = ../../../mylib/libmylib.so
    включает $ (PREBUILT_SHARED_LIBRARY)

  7. замена libmylib.so на libmylib.so.% Some num бер% вызывают неудачное завершение процесса сборки с [LOCAL_SRC_FILES должны указывать на файл, заканчивающийся с «.so»]


    Имея выше в виде, как я могу иметь кодек загрузки без проблемы зависимостей?
    • Могу ли я установить зависимость libavcodec.so, чтобы указать на libavutil.so, а не libavutil.so.51?
    • Могу ли я изменить Android.mk, чтобы он мог упаковать libavutil.so.51 (без расширения .SO)? будет ли он загружаться с помощью «System.loadLibrary»?.

      Любая помощь будет оценена по достоинству !!!

      Надав в Sophin

ответ

0

работы вокруг было просто использовать статические LIBS, а не динамических LIBS, это, однако, это временная работа вокруг, как из-за LGPL ограничений в SharedLibs являются обязательными для коммерческого использования.

+0

Вы когда-нибудь находили реальное решение? Я в той же дыре и сталкиваюсь с тем же ограничением из-за LGPL. – spartygw

+1

Хорошо, я, наконец, нашел решение для этого, изменив Makefile в дистрибутиве ffmpeg для создания библиотек без суффикса версии. Итак, у меня есть true libavutil.so, libavcodec.so, libswscale.so и все работает над моей связью 4! – spartygw

+0

Привет, я столкнулся с такой же проблемой, когда использовал последний FFMPEG, ваша точка очень полезна, но я не сделал этого из-за того, что не знаю, как изменить, можете ли вы помочь мне указать, как его изменить? – Sean