我正在嘗試構建適用於Android的vp8編解碼器。我用sourcery g ++運行了configure.sh腳本和armv6的makefile,併成功生成了libvpx.so。之後,我寫了一個JNI包裝器,並用ndk-build編譯成功。當我在薑餅智能手機上運行時,我得到一個UnsatisfiedLinkError「libpthread.so.0 not found」。我怎樣才能擺脫這個錯誤?在Android上構建vp8
回答
這有時可能是一個共享庫中的SONAME問題,請看這篇文章。
http://groups.google.com/group/android-ndk/browse_thread/thread/fd484da512650359
,如果你真的不需要他們就可以禁用並行線程。
Iv'e曾與過去.so文件的問題,並通過使用。一個靜態庫代替的.so共享庫
從http://git.chromium.org/gitweb/?p=webm/bindings.git;a=blob_plain;f=JNI/README.Android與可讀性一些調整避免了所有這些問題。
創建{project}/jni文件夾。
獲取JNI綁定。
獲取libvpx。
配置libvpx爲Android
./libvpx/configure --target = ARMv7的-機器人-GCC --disable-例子--sdk路徑= {NDK的路徑}
--sdk-path
必須是絕對的。獲取libwebm。
CD綁定/ JNI
獲取libogg。
下載OGG代碼http://downloads.xiph.org/releases/ogg/libogg-1.3.0.tar.gz
提取到綁定/ JNI。
我們需要運行configure來生成config_types.h。
CD libogg-1.3.0 & &的./configure & & CD ..
獲取libvorbis
下載Vorbis格式代碼http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.3.tar.gz
提取到綁定/ JNI。
獲取libyuv
svn籤http://libyuv.googlecode.com/svn/trunk/ libyuv-只讀
創建(項目)/jni/Application.mk與下面的數據:
APP_ABI := armeabi-v7a APP_OPTIM := release APP_STL := gnustl_static APP_CPPFLAGS := -frtti
用數據創建{project} /jni/Android.mk w:
WORKING_DIR := $(call my-dir) BINDINGS_DIR := $(WORKING_DIR)/bindings/JNI include $(BINDINGS_DIR)/Android.mk
構建JNI代碼。
{路徑NDK}/NDK-建立
複製的Java代碼。
CP -R綁定/ JNI/COM /谷歌../src/com/
添加代碼以測試該綁定。
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);
運行該應用程序。您應該看到libwebm版本輸出。
根據需要調整。 VP8包裝位於com.google.libvpx命名空間中。
- 1. 在Android上構建Firefox
- 2. 在Android上構建libev ndk
- 3. 在Android上構建OpenSSL NDK
- 4. Linphone Android - 錯誤嘗試make(構建x86的libvpx失敗| vp8) - Mac OSX
- 5. VP8/VP9 RTP庫
- 6. 在PhoneGap上構建Android應用程序構建
- 7. 在android上編寫用於構建lib的gyp構建腳本
- 8. 在4.0上構建Android模塊
- 9. Android無法在OS X上構建10.7
- 10. 如何在Android/Linux上構建OpenSSL?
- 11. 無法在Mac上爲Android構建V8
- 12. 如何在android上構建openssl
- 13. 在Mac OS X Lion上構建Android 4.0
- 14. 在gradle上構建android應用程序
- 15. 在Android Studio上進行Ant構建
- 16. 在Ubuntu上構建libusb用android-ndk
- 17. Ionic AngularJS在ubuntu上構建android
- 18. 在Android上構建i2c工具
- 19. 如何在android上構建hidd?
- 20. 在BeagleBone黑色上構建rowboat-android
- 21. 在windows上構建.so庫,以便在android上使用
- 22. 構建Android LatinIME
- 23. 構建javamail-android
- 24. Android Jenkins構建
- 25. 在Android中構建Webkit
- 26. VP8在Google Glass上編碼產生灰度圖像
- 27. Android Studio上的構建失敗
- 28. Gcm用於Android上的調試構建
- 29. VP8-DirectShowFilter:QueryInterface結果爲E_NOINTERFACE(C++)
- 30. java的webm/vp8播放器
太棒了!但是 - 當我做下面的事時,我總是在配置過程中出錯。它不能實例化編譯器。以下是日誌: 無法調用編譯器:/Users/yosef/Desktop/adt/ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-gcc --sysroot =/Users/yosef/Desktop/adt/ndk/sources/android/libportable/arch-arm -I/Users/yosef/Desktop/adt/ndk/sources/android/cpufeatures -mtune = cortex-a8 -O3 -fPIC - W ..你知道可能是什麼原因嗎? – Nativ
回購已被移動到其他地方。請更新回購鏈接以獲取新的根目錄 - https://chromium.googlesource.com/ – Shrish