पर vp8 का निर्माण करें मैं एंड्रॉइड के लिए vp8 कोडेक बनाने की कोशिश कर रहा हूं। मैंने config.sh स्क्रिप्ट और armv6 के लिए makefile sourcery g ++ के साथ चलाया जो सफलतापूर्वक libvpx.so का उत्पादन किया। इसके बाद मैंने एक जेएनआई रैपर लिखा और इसे सफलतापूर्वक एनएनके-बिल्ड के साथ संकलित किया। जब मैं इसे जिंजरब्रेड स्मार्टफ़ोन पर चलाता हूं तो मुझे एक असंतुष्ट लिंक्स त्रुटि मिलती है "libpthread.so.0 नहीं मिला"। मैं इस त्रुटि से कैसे छुटकारा पा सकता हूं?एंड्रॉइड
एंड्रॉइड
उत्तर
यह कभी-कभी साझा पुस्तकालय में सोनामे के साथ एक समस्या हो सकती है, इस आलेख को देखें।
http://groups.google.com/group/android-ndk/browse_thread/thread/fd484da512650359
आप pthreads को निष्क्रिय करता है, तो क्या तुम सच में नहीं है उन्हें जरूरत हो सकता है।
iv'e अतीत में .so फाइलों के साथ समस्या नहीं थी और .so साझा पुस्तकालयों
http://git.chromium.org/gitweb/?p=webm/bindings.git;a=blob_plain;f=JNI/README.Android से पठनीयता के लिए कुछ समायोजन के बजाय ए स्थिर पुस्तकालयों का उपयोग करके इन समस्याओं के सभी से परहेज किया।
{project}/jni फ़ोल्डर बनाएं।
जेएनआई बाइंडिंग प्राप्त करें।
प्राप्त libvpx।
कॉन्फ़िगर एंड्रॉयड
./libvpx/configure --target = ARMv7-android-जीसीसी --disable-उदाहरण --sdk-पथ के लिए libvpx = {एनडीके के लिए पथ}
--sdk-path
पूर्ण होना चाहिए।libwebm प्राप्त करें।
सीडी बाइंडिंग/JNI
प्राप्त libogg। से http://downloads.xiph.org/releases/ogg/libogg-1.3.0.tar.gz
निकालें
डाउनलोड ogg कोड बाइंडिंग के लिए/JNI।
हमें config_types.h उत्पन्न करने के लिए कॉन्फ़िगरेशन चलाने की आवश्यकता है।
सीडी libogg-1.3.0 & & कॉन्फ़िगर & & सीडी ..
प्राप्त libvorbis
डाउनलोड वॉर्बिस से 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 बनाएं डब्ल्यू:
WORKING_DIR := $(call my-dir) BINDINGS_DIR := $(WORKING_DIR)/bindings/JNI include $(BINDINGS_DIR)/Android.mk
जेएनआई कोड बनाएं।
{NDK के लिए पथ}/जावा कोड NDK-निर्माण
प्रति।
सीपी आर बाइंडिंग/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 संस्करण आउटपुट देखना चाहिए।
आवश्यकतानुसार ट्वीक करें। वीपी 8 रैपर com.google.libvpx नेमस्पेस में हैं।
शानदार उत्तर! लेकिन - जब मैं निम्नलिखित कर रहा हूं तो मुझे कॉन्फ़िगरेशन के दौरान हमेशा त्रुटि मिल रही है। यह संकलक को तुरंत चालू नहीं कर सकता है। यहां लॉग है: कंपाइलर का आह्वान करने में असमर्थ: /Users/yosef/Desktop/adt/ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-gcc --sysroot =/उपयोगकर्ता/योसेफ/डेस्कटॉप/एडीटी/एनडीके/स्रोत/एंड्रॉइड/libportable/arch-arm -I/उपयोगकर्ता/योसेफ/डेस्कटॉप/एडीटी/एनएनडी/स्रोत/एंड्रॉइड/cpufeatures -mtune = प्रांतस्था -8-ओ 3-एफपीआईसी - डब्ल्यू .. क्या आप जानते हैं कि कारण क्या हो सकता है? – Nativ
रेपो को कहीं और स्थानांतरित कर दिया गया है। कृपया नई रूट से प्राप्त करने के लिए रेपो लिंक अपडेट करें - https://chromium.googlesource.com/ – Shrish