2012-02-27 11 views
0

OpenCVのAndroidポートを使用するアプリケーションを構築しようとしています。私はC++ OpenCV関数を書いて適切にラップしており、プロジェクトは何のエラーもなく構築されています。私が署名したAPKを構築するために行くときは、しかし、私は次のエラーを取得する:Android上のOpenCV APK用の重複ファイル

[2012-02-26 21:06:50 - PortalSentry] Found duplicate file for APK: lib/armeabi-v7a/libnative_camera_r2.2.2.so 
Origin 1: C:\workspace\android_body\PortalSentry\libs\armeabi-v7a\libnative_camera_r2.2.2.so 
Origin 2: C:\workspace\android_body\OpenCV-2.3.1\libs\armeabi-v7a\libnative_camera_r2.2.2.so 

私はいくつかの場所で言及見てきたソリューションは、OpenCVのメイクファイルを含む前

OPENCV_CAMERA_MODULES:=off 

を追加することです。私はこれを試みて、同じ重複ファイルエラーを取得します。これらのライブラリファイルの1つを含まないようEclipseに明示的に指示する方法はありますか?私は、JavaとC++の両方からOpenCVにリンクしているので、これが起こっている理由があると信じていますが、OPENCV_CAMERA_MODULES行はその状況でダブルインクルードを停止することになっています。

答えて

0

ネイティブOpenCvを使用してOpenCVサンプルをビルドする方法を解決するにはhttp://opencv.itseez.com

私はこの問題を自分で実行しました。私はOpenCV 2.4ベータ版を使用していましたが、ネイティブOpenCVコードを使用するサンプルチュートリアルを作成するときに問題が発生しました。

私はそれを修正し、どうやって落ちたのか説明したいと思います。

私はあなたが日食でこのようなライブラリーを構築すると仮定します。Android binary package using with NDK

どちらのプロジェクト、OpenCVのプロジェクトとサンプルプロジェクトは、同じワークスペースにあります。 OpenCVプロジェクトはライブラリとしてマークされます。 openCV2.3と2.4betaの違いを設定

プロジェクト:

  • 2.3:

    • プロジェクトの設定 - >アンドロイド - >リファレンスを追加 - > PathToOpenCV-2.3
    • プロジェクトの設定 - > Javaビルドパス - >プロジェクト:プロジェクトを追加する "OpenCV-2.3"
    • プロジェクト設定 - > Javaビルドパス - >オーダーとエクスポート:上に "OpenCV-2.3"、チェックボックスにチェックを入れます
  • 2.4

    • プロジェクトの設定 - >アンドロイド - >リファレンスを追加 - > PathToOpenCV-2.4betaあなたがこれを行うと

を必要としない 他の2つの設定、 Javaプロジェクトは機能します。しかし、これらのlibプロジェクトをインクルードしてネイティブサンプルを作成しようとすると、ファイル<libname>.soがコピーされ、サンプルプロジェクトフォルダ/obj/local/armeabi-v7a/にコピーされ、別の*.aファイルがPrebuilt OpenCVプロジェクトから見つけられます。そこから、NDKは/libフォルダ内のファイルを作成します。これらのファイルは後でapkファイルに含まれています(私は思う)。次に、EclipseのJava部分が実行されます。これは、.soファイルの重複を検出します。このファイルは、OpenCV libとサンプルライブラリの中に見つかります。したがって、新しいapkファイルの作成は拒否されます。 (重複したエントリでこれを行うための回避策があるかもしれませんが、私はこれに従いませんでした。Duplicate file when deploying apkを参照してください)。

重複を避けるために、プロジェクトのプロパティ "プロジェクト設定 - > Android - >参照の追加 - > PathToOpenCV-2.4beta"のオプションを削除した後、NDKはlibsをインポートしてビルドします上記の2番目のリンクのEclipseビルドチェーンでは、サンプルにはOpenCVプロジェクト全体が含まれていませんが、バイナリからいくつかのOpenCVが分かっています。

OpenCVのJavaサポートが必要なときにこれが動作するかどうかわかりません。

関連する問題