Intereting Posts
Android: getLastKnownLocation устаревший – как заставить обновление местоположения? Плавающая кнопка Действие Цвет рамки не меняется Невозможно получать события, связанные с сетью Обновите существующий элемент предпочтения в PreferenceActivity после возврата с (sub) PreferenceScreen Android VM не позволит нам выделять байты xx Могу ли я иметь «мягкую клавиатуру» «adjustResize» и панель инструментов за панель состояния одновременно? Сертификат списка, хранящийся в учетных данных пользователя Genymotion не смогла создать изображение framebuffer, не получая ни одного работоспособного решения Почему входное значение в EditText меняет свою позицию при прокрутке в RecyclerView? Java.lang.RuntimeException: сбой takePicture Динамически создавать CheckBoxPreferences Размер экрана устройства Android Фильтр списка избранных атрибутов BaseAdapter Аварийная сигнализация AlarmManager немедленно срабатывает Класс StringUtils не работает в Android

Создать vp8 на Android

Я пытаюсь создать кодек vp8 для Android. Я запустил скрипт configure.sh и makefile для armv6 с sourcery g ++, который успешно создал libvpx.so. После этого я написал обертку JNI и скомпилировал ее с помощью ndk-build. Когда я запускаю это на смартфоне Gingerbread, я получил UnsatisfiedLinkError «libpthread.so.0 not found». Как я могу избавиться от этой ошибки?

Solutions Collecting From Web of "Создать vp8 на Android"

Из http://git.chromium.org/gitweb/?p=webm/bindings.git;a=blob_plain;f=JNI/README.Android с некоторыми настройками для удобочитаемости.

  1. Создайте папку {project} / jni.

  2. Получите привязки JNI.

    Git clone https://chromium.googlesource.com/webm/bindings

  3. Получите libvpx.

    Git clone https://chromium.googlesource.com/webm/libvpx

  4. Настройка libvpx для Android

    ./libvpx/configure –target = armv7-android-gcc -disable-examples -sdk-path = {путь к NDK}

    --sdk-path ДОЛЖЕН быть абсолютным.

  5. Получите libwebm.

    Cd привязки / JNI

    Git clone https://chromium.googlesource.com/webm/libwebm

  6. Получите libogg.

    Загрузите код ogg с http://downloads.xiph.org/releases/ogg/libogg-1.3.0.tar.gz

    Выдержка для привязок / JNI.

  7. Нам нужно запустить configure для создания config_types.h.

    Cd libogg-1.3.0 && ./configure && cd ..

  8. Получить libvorbis

    Загрузите код vorbis с сайта http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.3.tar.gz.

    Выдержка для привязок / JNI.

  9. Получить libyuv

    Svn checkout http://libyuv.googlecode.com/svn/trunk/ libyuv-read-only

  10. Создайте {project} /jni/Application.mk со следующими данными:

     APP_ABI := armeabi-v7a APP_OPTIM := release APP_STL := gnustl_static APP_CPPFLAGS := -frtti 
  11. Создайте {project} /jni/Android.mk со следующими данными:

     WORKING_DIR := $(call my-dir) BINDINGS_DIR := $(WORKING_DIR)/bindings/JNI include $(BINDINGS_DIR)/Android.mk 
  12. Создайте код JNI.

    {Путь к NDK} / ndk-build

  13. Скопируйте код Java.

    Cp -R bindings / JNI / com / google ../src/com/

  14. Добавьте код для проверки привязок.

     int[] major = new int[2]; int[] minor = new int[2]; int[] build = new int[2]; int[] revision = new int[2]; MkvMuxer.getVersion(major, minor, build, revision); String outStr = "libwebm:" + Integer.toString(major[0]) + "." + Integer.toString(minor[0]) + "." + Integer.toString(build[0]) + "." + Integer.toString(revision[0]); System.out.println(outStr); 
  15. Запустите приложение. Вы должны увидеть выход версии libwebm.

  16. При необходимости отрегулируйте. Обертки VP8 находятся в пространстве имен com.google.libvpx.

Иногда это может быть проблемой с SONAME в общей библиотеке, посмотрите на эту статью.

http://groups.google.com/group/android-ndk/browse_thread/thread/fd484da512650359

Вы можете отключить pthreads, если они вам действительно не нужны.

У Iv'e были проблемы с .so-файлами в прошлом и избегали всех этих проблем, используя статические библиотеки .a вместо разделяемых библиотек .so