2012-07-27 9 views
5

アンドロイドのOpenCVプロジェクトをダウンロードしました。バンドルされたサンプルプロジェクトにはいくつかのエラーが含まれています.... NDKコードを含むプロジェクトのみエラーが発生しました.... 問題は、あなたの貴重な時間のためによろしくお願いします... は親切に私はこの問題を解決するのに役立つ。.. C++コードは、多くのエラーを示しています... JSTRINGよう キーワードが認識されないことをエラーを表示するアンドロイドサンプルプログラムのOpenCV

#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

@Michael ...編集内容をご覧ください。 –

+0

Eclipseを使用していますか?もしそうなら、これを試してみてください: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

はマイケルさんのコメントは私のためにそれを解決し、@が続きます。ここで組み合わせる手順は次のとおりです:Eclipseの

  1. 、右のプロジェクトプロパティを選択]をクリックします(これはところでMac上で)
  2. C/C++一般
  3. 選択パスおよびシンボルを展開言語の下で
  4. は以下が含まれGNU C++
  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. は今先に行くと、プロジェクトを右クリックしてインデックスを再構築し、インデックスを選択 -

乾杯を再構築します。

関連する問題