运行环境:Ubuntu13.10 + adt-bundle-linux-x86_64-20130729 +ndk9 + OpenCV-2.4.7.1-android-sdk;
关于Opencv在Android环境中的开发,网上介绍的教程很多,但实际上在Ubuntu环境中搭建开发环境是非常简单的。
只需要下载adt(其中已经包括Eclipse了,如果只开发Android/Java程序,已经够用了),NDK,设置环境的话编辑/etc/profile文件,添加环境变量,如下所示:
export JAVA_HOME=/usr/lib/jvm/java-6-oracle
export JRE_HOME=/usr/lib/jvm/java-6-oracle/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:/home/jackie/software/adt-bundle-linux-x86_64-20130729/sdk/platforms/android-18/android.jar:home/jackie/WorkOpenAnd/OpenCV-2.4.7.1-android-sdk.zip
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$HOME/bin
export ANDROID_HOME=/home/jackie/software/adt-bundle-linux-x86_64-20130729/sdk
export NDKROOT=/home/jackie/software/android-ndk-r9
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$NDKROOT
其中Java环境变量是自动下载并进行设置的。
今天在运行OpenCV/Samples/face-detection程序时,编译NDK时提示,
Android NDK: WARNING:jni/Android.mk:detection_based_tracker: non-system libraries in linker flags: -lopencv_java
Android NDK: This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES
Android NDK: or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the
Android NDK: current module
然后运行的时候就提示cannot launcher, 大概是说 版本不匹配,后来发现在Application.mk文件中,APP_PLATFORM := android-8,
而我当前用的版本是18,将其改为APP_PLATFORM := android-18就可以正常运行了。
--转自