MacOSXにAndroidの開発環境を用意し、OpenCVをインストールしようとしたら引っかかったのでメモ。
そこでやるべきこと。
なので上記のコマンドでlaunchdが使用する環境変数を追加するといいらしい。
カメラから画像とれねぇ(TдT)
用意するもの
まず、必要なのは以下らしい。- Androidの開発環境
- Android NDK
- OpenCV for Android
ndk-buid not found in PATH
公式サイトや他の先駆者のサイトを見つつOpenCVのSDKを読み込み、さっそくサンプルをビルドしてみた結果がコレ。 エラーの内容はこんな感じ どうやらAndroid NDKとやらが参照できないらしい。そこでやるべきこと。
- Android NDKをダウンロードしてきて適当なフォルダ(決して絶対パスに空白があってはいけない)に置く(例:/opt/ndk)
- ビルドエラーが出ているプロジェクトのプロパティを見てみる
- C/C++ Build → Builder → Build Commandを「$(NDKROOT)/ndk-build」にする。(.cmdを消す)
- Eclipseの環境設定でAndroid → NDK → NDK LocationをNDKを置いたパスにする。(例:/opt/ndk)
大抵のサイトはここで終わってたが、ここで問題発生、「/ndk-buidが見つからない」と怒られる。 なんでだ!NDK Location設定したじゃん!
しかたがないのでエラーメッセージに出ている「PATH」か、もしくはBuild Commandで指定してある「NDKROOT」という環境変数にどうにか「/opt/ndk」を追加しないといけないらしい。というわけでターミナルで以下を実行する。
% launchctl setenv NDKROOT /opt/ndk % launchctl getenv NDKROOT /opt/ndk気をつけないといけないのが、~/.tcshrcや~/.bash_profileに書いても意味ないってこと。うん、こいつらが有効になるのはターミナル内だけだからね。
なので上記のコマンドでlaunchdが使用する環境変数を追加するといいらしい。
OpenCV Managerをエミュレータにインストール
実機ならばPlay Storeがでいいのだけれど、エミュレータだと無理なので手動インストールするらしい。というわけで手順メモ。- Windows → Android Virtual Device ManagerでエミュレータのCPUを調べる(以下の場合はarmabi-v7a)
- エミュレータを起動してホーム画面にする
- このサイトでCPUにあったマネージャを調べる。どうやら「OpenCV_2.4.5_Manager_2.7_armv7a-neon.apk」らしい。
- ターミナルからadbコマンドを使ってインストールする
- エミュレータにOpenCV ManagerアプリがインストールされてればOK
% <Android SDK path>/platform-tools/adb install <OpenCV4Android SDK path>/apk/OpenCV_2.4.5_Manager_2.7_armv7a-neon.apk % <Android SDK path>/platform-tools/adb install <OpenCV4Android SDK path>/apk/OpenCV_2.4.5_Manager_2.7_binary_pack_armv7a.apk
カメラから画像とれねぇ(TдT)