2012-07-27 12 views
5

मैंने एंड्रॉइड के लिए ओपनसीवी प्रोजेक्ट डाउनलोड किया है और इसके साथ बंडल किए गए नमूना प्रोजेक्ट में कई त्रुटियां हैं .... केवल एनडीके कोड वाले प्रोजेक्ट में त्रुटियां हैं .... समस्या यह है कि सी ++ कोड कई त्रुटियों ... jstring जैसे कीवर्ड मान्यता प्राप्त नहीं हैं .. कृपया मुझे अपने मूल्यवान समय के लिए इस मुद्दे को ... पहले से आपको धन्यवाद हल करने में मदद से पता चलता हैएंड्रॉइड नमूना कार्यक्रमों के लिए ओपनसीवी त्रुटि

#include <jni.h> 
#include <opencv2/core/core.hpp> 
#include <opencv2/imgproc/imgproc.hpp> 
#include <opencv2/features2d/features2d.hpp> 
#include <vector> 

using namespace std; 
using namespace cv; 

extern "C" { 
JNIEXPORT void JNICALL Java_org_opencv_samples_tutorial3_Sample3View_FindFeatures(JNIEnv* env, jobject, jint width, jint height, jbyteArray yuv, jintArray bgra) 
{ 
    jbyte* _yuv = env->GetByteArrayElements(yuv, 0); 
    jint* _bgra = env->GetIntArrayElements(bgra, 0); 

    Mat myuv(height + height/2, width, CV_8UC1, (unsigned char *)_yuv); 
    Mat mbgra(height, width, CV_8UC4, (unsigned char *)_bgra); 
    Mat mgray(height, width, CV_8UC1, (unsigned char *)_yuv); 

    //Please make attention about BGRA byte order 
    //ARGB stored in java as int array becomes BGRA at native level 
    cvtColor(myuv, mbgra, CV_YUV420sp2BGR, 4); 

    vector<KeyPoint> v; 

    FastFeatureDetector detector(50); 
    detector.detect(mgray, v); 
    for(size_t i = 0; i < v.size(); i++) 
     circle(mbgra, Point(v[i].pt.x, v[i].pt.y), 10, Scalar(0,0,255,255)); 

    env->ReleaseIntArrayElements(bgra, _bgra, 0); 
    env->ReleaseByteArrayElements(yuv, _yuv, 0); 
} 

} 

त्रुटियों ..

Unresolved inclusion: <vector> 
Symbol 'std' could not be resolved 
+0

आपको त्रुटि संदेश और कोड जो वे मेल खाते हैं पोस्ट करना चाहिए। – Michael

+0

@ माइकल ... कृपया संपादन देखें .. –

+0

क्या आप एक्लिप्स का उपयोग कर रहे हैं? यदि हां, तो क्या आपने यह कोशिश की है: http://stackoverflow.com/questions/9375708/eclipse-indexer-errors-when-using-stl-with-android-ndk? – Michael

उत्तर

0

मैं एक ही समस्या थी और निम्नलिखित शामिल पथ का उपयोग करके OpenCV ट्यूटोरियल का अनुसरण करते हुए इन और का सामना करना पड़ा अन्य त्रुटियों को हल करने में सक्षम था:

${NDKROOT}/platforms/android-9/arch-arm/usr/include 
${ProjDirPath}/../../sdk/native/jni/include 
${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.4.3/libs/armeabi-v7a/include 
${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.4.3/include 
4

@ नोलन के जवाब द्वारा @ माइकल की टिप्पणी मेरे लिए इसे हल पीछा । यहाँ संयुक्त कदम हैं:

  1. ग्रहण में, सही अपनी परियोजना का चयन करें और गुण पर क्लिक करें
  2. विस्तृत C/C++ जनरल
  3. करें पथ और प्रतीकों (यह पर एक मैक btw है)
  4. तहत बोली का चयनजीएनयू सी ++
  5. निम्नलिखित शामिल के तहत परिभाषित किया जाना चाहिए निर्देशिका

    ${NDKROOT}/platforms/android-9/arch-arm/usr/include 
    ${ProjDirPath}/../../sdk/native/jni/include 
    ${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.4.3/libs/armeabi-v7a/include 
    ${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.4.3/include 
    
  6. सुनिश्चित करें कि $ {NDKROOT} एक वातावरण चर के रूप में परिभाषित किया गया है शामिल करें। यह आगे जाना नहीं है, तो और के तहत इसे जोड़ने C/C++ बिल्ड - पर्यावरण

  7. अब आगे जाना है और अपनी परियोजना पर राइट क्लिक करके सूचकांक के पुनर्निर्माण और सूचकांक चयन - पुनर्निर्माण

चीयर्स।

संबंधित मुद्दे