Android, зависимость от общей библиотеки - PullRequest
0 голосов
/ 02 февраля 2012
  1. Я внедряю приложение, которое использует LibAv / ffmpeg на Android
  2. Я использую JNI для взаимодействия с нативным кодом
  3. мой 'Shared Lib' использует libswscale.so, libavutil.so, libavformat.so, libavdevice.so, libavcore.so и libavcodec.so.
  4. Проверено, что все 'Shared Libs' упакованы в один и тот же каталог в файле APK
  5. Я отлаживаю на устройстве (без эмулятора)
  6. Runtime.loadLibrary ($ MY_LIB_NAME) вызывает исключение UnsatisfiedLinkError
  7. Непосредственное выполнение 'System.loadLibrary ("swscale") "также вызывает исключение UnsatisfiedLinkError

Я предполагаю, что libav * .so зависит от дополнительных библиотек, которые должны быть добавлены в APK, однако я не уверен, как их обнаружить. Есть ли инструмент для обнаружения зависимых общих библиотек? (Окно зависит от эквивалента)?

Любая помощь будет оценена.

~ Надав

1 Ответ

0 голосов
/ 02 февраля 2012

Вы можете использовать инструмент objdump для вывода списка необходимых общих библиотек:

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

Это для окон.Измените путь к инструменту objdump для вашей ОС.

...