Intereting Posts
Android: эмулятор не запускается с установленным разрешением FullHD Как реализовать настраиваемое раскрывающееся меню на панели действий в Android В Android, если OS убивает мое приложение, получит getIntent () вернуть намерение с такими же дополнительными функциями? Преобразование параметризованных Enum в перечисляемую аннотацию в android Как сделать снимок потоковой передачи RTSP с помощью LibVLC для Android Использование google-аккаунта для входа в Android-приложение Это ошибка с CheckBox в Android? Связывание FirebaseRecyclerViewAdapter с булевой / строковой картой. Как читать Pdf на Android без использования сторонних приложений? Android: Как написать несколько селекторов в одном XML-файле Шаблон пользовательского интерфейса Android Quick Action Больше не требуется ActivityManager – не проблема службы Сложные объекты в списке Фоновая служба Android перезагружается, когда приложение убито Могу ли я использовать onScrollListener для ScrollView?

Создать vp8 на Android

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

    Из 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