一直以来做的都是PC端的开发,最近对移动开发有了兴趣,加之毕业设计老师让做一个android平台的图像处理应用。由于我在PC端采用的是opencv+c++,所以核心算法不想改太多,所以采用java做壳,c++核心的开发方式。通过ADT+CDT插件,在eclispe下搭建android开发环境。
之所以选择在linux下搭建,是因为jni只能调用c++源代码编译后的.so文件。在windows下通过cgwin等来模拟,太丑太别扭。
by the way,更喜欢linux系统~。
但是网上的教程几乎找不到一个完整无错误的!好无语!所以自个历练一番,记录下来,交流一下。
废话不多说,进入正题。
安装前需要准备的资源:
1.ubuntu14.04(我的是64位的,所以以下软件都是选择64位的,32位的自行下载对应版本,所有安装方法是一样的)
2.jdk1.7
3.eclipse ee版
4.ADT插件
5.CDT插件
6.android sdk manager
7.NDK
以上资源可以去官网下载,但是一般比较慢,所以我提供一个我的网盘,大家可以去下载。下载地址,访问密码 863b
1.安装linux系统。
我手边只有ubuntu14.04,所以凑合着用下吧。建议装双系统,制作U盘启动盘安装,比较方便和快速。安装的过程最好联网!下面是一个链接,可以参考,但是真心建议联网安装!u盘安装ubuntu14.04 (最后一步用easyBCD修复启动引导项,效果太奇怪,是在ubuntu的引导界面里选择windows后又出现windows和ubuntu启动选项-_-)
安装好后,可以在自己的home创建一个工作目录。下面我的安装配置都是基于工作目录。例如我的工作目录是:/home/june/work
2.安装jdk。
在work目录下新建一个java目录,将下载好的jdk7解压到这个目录(命令行还是鼠标操作个人随意)。
此时的jdk目录就是/home/and/java/jdk1.7.0,此时已经解压完成了,下面来配置环境变量。
在终端中输入sudo gedit /etc/profile回车,会要求输入密码,然后会打开一个文件,在文件中输入以下四行:
export JAVA_HOME=/home/june/work/java/jdk1.7.0
export JRE_HOME=/home/june/work/java/jdk1.7.0/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
然后要使得环境变量生效,网上说法是在终端输入:
source /etc/profile
.检测是否已经生效,可以关闭当前终端,重新打开一个终端,输入:
java -version
接着查看系统路径变量输入 :
echo $PATH
我测试的结果没有用,只能重启电脑才生效!
3.安装eclispe.
解压即可。我直接解压到我的work目录下,为了以后启动方便,可以在home目录下的bin文件夹里创建一个软链接(没有bin目录的自己先创建),然后在终端中输入命令:
cd ~/bin
ln -s ~/work/eclipse/eclipse
最后在终端里启动eclispe试试看:eclispe&
4.运行android sdk manager.
将android sdk manager压缩包里面的内容解压到work下的android_ndk_linux目录下。利用android sdk manager.可以很方便地在线下载android开发需要的api和tool等,但是android sdk manager.默认是从google的服务器上下载,最近google已经被墙了,所以速度极度慢,甚至下载不了。所以需要为android sdk manager.设置代理,选择新的镜像地址。电脑已经翻墙了的,可以不用改镜像。改镜像方法如下:
在终端输入:
gedit ~/.android/androidtool.cfg
在打开的文件中修改成如下:
### Settings for Android Tool
#Sun Feb 01 13:34:15 CST 2015
http.proxyPort=80 #可以自己指定端口号,但是不要跟系统已知端口号重复
sdkman.monitor.density=96
sdkman.enable.previews=false
http.proxyHost=mirrors.neusoft.edu.cn #一个不错的镜像地址,如果后期不能用,可以尝试自己搜索新的镜像
sdkman.ask.adb.restart=false
sdkman.show.update.only=true
sdkman.force.http=true
sdkman.use.dl.cache=true
设置好代理镜像后,在终端中输入:
cd ~/work/android_sdk_linux/tools/
chmod a+x android
./android
启动manager后,它会自动更新要安装的选项。更新好后,我们选中build tool ,platform tool ,android api5.0, google api 就可以了(这个根据需要选择安装,我的是已经足够了),最后一定要记得:不要选system image 选项,这是为了安装AVD(安卓模拟器),这个安装好后14G!太大了,并且AVD不好用,特别慢,最后是最后直接在安卓手机上面测试运行程序!一些linux安装空间小的用户,如果安装了system image,最后会发现自己的磁盘不够了!!!
在等待的过程中,可以再解压NDK包,把SDK和NDK配置一下:
sudo gedit /etc/profile
在文件最后加上SDK和NDK的路径和变量。
export JAVA_HOME=/home/june/work/java/jdk1.7.0
export NDKROOT=/home/june/work/android_ndk_linux
export JRE_HOME=/home/june/work/java/jdk1.7.0/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin:$HOME/work/android_sdk_linux/tools:$HOME/work/android_ndk_linux/
然后,等SDK安装好后,还是重启下电脑吧-_-
5.在eclispe里安装ADT和CDT插件
可以在线安装,方法自己google,但是速度得不到保证,还是本地安装吧。
以安装ADT为例:
edlipse里面选择help->install new software.在弹出的窗口里选择add,然后name输入ADT,路径选择本地ADT安装包。
点击OK,行了,根据提示,一步一步安装吧,中间会有提示是否重新启动eclipse,选择restart now就行了.
同样的方法安装CDT。
6.配置ADT和CDT。(前提是sdk已经安装好了)
安装好ADT插件后,在重启eclipse后,会弹出让设置sdk目录。设置好目录后,再去windows->preference->android->NDK里面设置NDK的目录。
完事后,关闭重启eclispe。
7.测试android 环境和c++ NDK环境是否搭建成功,可以分别导入官方的sample测试一下。
我在测试过程中,发现一些问题:
(1) android和java依赖的库文件一定要保证导入进去了。否则源码文件一片红。。。。
(2)R 文件无法生成!导致源文件里面一片红啊。整个工程只要有错误,就无法自动生成R文件,不管你clean,rebuild工程多少遍。错误原因可以从console的输出可以找到。我当时遇到的是: aapt:error while loading shared libraries: libstdc++.so.6: cannot openshared object file: No such file or directory
解决方法是在我的64位系统里安装32位的一些丢失的共享库。在终端里面输入:
sudo apt-get install lib32stdc++6 lib32z1 lib32z1-dev8.配置opencv-android-sdk
直接将下载好的OpenCV-2.4.9-android-sdk文件解压,然后将里面的SDK目录下的工程导入eclispe里面,当作库工程(工程属性里面勾选 is library),以后你需要用到opencv的android工程,在工程属性里面引用opencv的库工程就可以了。
9.运行opencv+android的官方sample,
工程导入进来后,如果有错,要修改工程属性,添加库文件等。他们官网上也有详细的教程解释,虽然是英语的,但是还是解释的很清楚。多去看看。推荐几个:
http://docs.opencv.org/doc/tutorials/introduction/android_binary_package/O4A_SDK.html
http://docs.opencv.org/doc/tutorials/introduction/android_binary_package/android_dev_intro.html
最后总结下:1.网上的安装教程虽说不少,但是大多不全面,甚至有错!坑!
2.有问题多google,看英文的帮助,然后自己多大胆动手尝试。
3.我也是第一次搭建这样的环境,可能个人理解比较粗浅,大神们请忽略。(但是我搭建成功了,哈哈)
4安装过程中遇到的问题,有些已经记不起来了,在安装过程中有问题的同学,.可以留言讨论交流。
因看到某网站未经本人许可,全篇复制了本人博客内容。所以转载请注明出处:linux(ubuntu14.04)下eclipse+android+opencv+jni环境搭建