konstantin_berkow
@konstantin_berkow
Начинающий разработчик

Как подключить прекомпилированные нативные библиотеки в Android Studio?

Последовав совету из статьи Не используйте стандартный MediaPlayer, решил воспользоваться одной из готовых библиотек для воспроизведения основанной на FFmpeg - wseemann/FFmpegMediaPlayer.
Следуя инструкции "Extract and copy the following JAR file and prebuilt native libraries into your projects "libs" folder" не долго думая поместил указанные файлы в папку libs и добавил депенденси к жарнику, в результате при попытке создания объекта FFmpegMediaPlayer получаю следующую красоту:
07-11 23:12:26.658 4579-4579/"my_package".debug E/dalvikvm﹕ ERROR: couldn't find native method
07-11 23:12:26.658 4579-4579/"my_package".debug E/dalvikvm﹕ Requested: Lwseemann/media/FFmpegMediaPlayer;.native_getMetadata:()Ljava/util/HashMap;
07-11 23:12:26.658 4579-4579/"my_package".debug E/dalvikvm﹕ Candidate: Lwseemann/media/FFmpegMediaPlayer;.native_getMetadata:(ZZLjava/util/HashMap;)Ljava/util/HashMap;
07-11 23:12:26.658 4579-4579/"my_package".debug W/dalvikvm﹕ No implementation found for native Lwseemann/media/FFmpegMediaPlayer;.native_init:()V
07-11 23:12:26.658 4579-4579/"my_package".debug W/dalvikvm﹕ Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lwseemann/media/FFmpegMediaPlayer;
И собственно корень зла: java.lang.UnsatisfiedLinkError: Native method not found: wseemann.media.FFmpegMediaPlayer.native_init:()V

Но на этом я не остановился и решил воспользоваться fmp-demo из того же проекта, импортировав с помощью студии проект я получил демо проект который вполне себе собирается, что меня удивило, так это папка jniLibs рядом с папкой java и res, в ней собственно и находились *.so для разных архитектур. Окрыленный данным открытием я попробовал сделать тоже самое с моим проектом, в результат абсолютно такая же ошибка.

Собственно интересуюсь возникали ли у кого-то подобные проблемы и как их решили кроме как скомпилировали нужные библиотеки у себя.
  • Вопрос задан
  • 1612 просмотров
Решения вопроса 1
konstantin_berkow
@konstantin_berkow Автор вопроса
Начинающий разработчик
Итого все решилось тривиально - перенес папки c *.so файлами в папку jniLibs в папке main.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы