2014-02-10 2 views
0

Я не знаю, как использовать .so файлы в моем проекте. Поэтому я загрузил файл ffmpeg.so, и теперь мне нужно добавить его в мое решение, чтобы я мог конвертировать видеоформаты на свое устройство, но я не знаю, как это сделать. Я попытался найти учебники в Интернете о том, как добавить этот файл, но ничего не работает для меня.Добавить .so файл в решение для Android

Должен ли я по-прежнему нуждаться в NDK для Android, чтобы скомпилировать мой код C, поскольку у меня есть .so-файл.

Любые хорошие учебники, как я могу добавить эту библиотеку в мое решение?

+0

Достигает ли это того, что вы хотите сделать? [NDK-хау в использовании-а-сгенерированный так библиотека-в-другой-проект] (http://stackoverflow.com/questions/5669220/ndk-how-to-use-a-generated-so- library-in-another-project) – bornruffians

+0

Если Java API не предоставляется библиотекой, вам необходимо создать его с помощью NDK. Добавление файла .so в приложение для Android закрывается просто, просто добавьте его в папку/libs и загрузите его во время выполнения командой System.loadLibrary (ffmpeg.so); –

+0

при загрузке System.loadLibrary ("ffmpeg.so"); он дает мне эту ошибку Не удалось загрузить ffmpeg.so из загрузчика dalvik.system.PathClassLoader [DexPathList [[zip-файл] /data/app/com.example.untitled-1.apk"],nativeLibraryDirectories=[/data /app-lib/com.example.untitled-1,/vendor/lib,/system/lib]]]: findLibrary возвращается null – user3292775

ответ

0

Включите файл с именем libffmpeg.so в подкатегорию "libs/armeabi". Вам не нужен NDK, если у вас нет собственных C/C++-источников.

Иногда случается, что ожидания имени Android не выполняются. Имя должно начинаться с lib и заканчиваться .so.

+0

nope still nothing – user3292775

+0

Пожалуйста, сообщите подробности. Вы уверены, что библиотека, которую вы загрузили, построена для Android, и для ** armeabi **? Посмотрите в файл APK, который вы создали (это ZIP-файл с измененным расширением). Вы видите библиотеку ffmpeg, упакованную внутри? Когда вы устанавливаете APK, системный журнал показывает, что библиотека извлекается в '/ data/app-lib/com.example.untitled-1'? –

+0

Мне удалось загрузить его. ошибка заключалась в предоставлении пути к библиотеке, которую я предоставлял libs/libffmpeg.so. В каталоге libs вместо exisist нет необходимости писать «lib/libffmpeg.so» 'System.load (this.getBaseContext(). GetApplicationInfo(). DataDir +" /lib/libffmpeg.so ");' – user3292775

Смежные вопросы