Liby's Blog

 汝鬼耶,抑人耶?

Archive for the ‘C++’ tag

Windows平台下Qt5.1 for Android的安卓开发环境

with 13 comments

前段时间Qt5.1正式版发布,支持Android和IOS的开发,强大的可移植性和跨平台特性非常的吸引人,并且使用C++。由于之前做过Qt在嵌入式平台的应用,所以顺便试试新版本的Qt如何,再看看Qt5.1 for Android是否足够优秀呢,环境搭建如下,可能会有疏漏之处。
整个配置过程可以参考官方Wiki
首先是各种软件的下载,先不管目前对开发有没有用吧,整上再说,包括Perl、Mingw等等。
Perl
MSYS
MinGW
Ant
JDK
NDK
SDK
Qt5.1 for Android

有些版本可能会有更新,根据自己的情况下载需要的版本。我最终下载的文件名如下(文件顺序与上对应):
strawberry-perl-5.16.3.1-32bit.msi
msys+7za+wget+svn+git+mercurial+cvs-rev13.7z
x32-4.8.1-release-win32-dwarf-rev3.7z
apache-ant-1.9.2-bin.zip
jdk-7u25-windows-i586.exe
android-ndk-r9-windows-x86.zip
adt-bundle-windows-x86-20130729.zip
qt-windows-opensource-5.1.0-android-x86-win32-offline.exe

各个文件解压或则安装,现在需要设置一下环境变量。我先说一下我的文件路径如下(路径顺序与上对应):
C:\strawberry
C:\mingw-builds\msys
C:\mingw-builds\mingw32
C:\apache-ant-1.9.2
C:\Program Files\Java\jdk1.7.0_25
C:\android-ndk-r9
C:\adt-bundle-windows-x86-20130729
C:\Qt\Qt5.1.0

现在来设置环境变量,所有操作全部在环境变量中的系统变量里面。
增加变量名JAVA_HOME,变量值C:\Program Files\Java\jdk1.7.0_25
增加变量名CLASSPATH,变量值.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\toos.jar
修改变量名Path,增加变量值C:\strawberry\perl\bin;%JAVA_HOME%\bin;C:\mingw-builds\mingw32\bin;C:\adt-bundle-windows-x86-20130729\sdk\platform-tools;C:\adt-bundle-windows-x86-20130729\sdk\tools;C:\android-ndk-r9;

这样环境变量也就设置完了,测试下是否可用,CMD下分别输入以下命令是否发生错误:
java -version
javac -version
gcc -v
emulator -version
adb -version
mingw32-make -version

然后是Qt的设置如下图:

Qt5.1 performance

至于SDK Manager的相关内容在这不多说了,至此你可以开始C++开发Android应用了!

————————

2013.8.15

经过目前测试NDK暂时无法使用r9版本(当然,不排除是我的环境问题),会出现Qt无法自动找到构建工具的情况,虽然可以编译也可以在模拟器上运行,但是无法生成APK。如下图:

kit

主要原因如上图,路径不正确,正确路径应该是”\prebuilt\winodws\bin”。
不论是添加“ANDROID_NDK_HOST=windows”环境变量,还是手动添加构建套件Kit都无法解决问题。前者将如下一张图中ANDROID_NDK_HOST的值变为空值,手动修改无效;后者会导致Qt版本和编译器出错。
使用android-ndk-r8e-windows-x86.zip则正常,暂且不知道原因,但是应该和NDK的环境变量有关,一切参考官方WIKI为准。至于官方文档提到的

Add some environment variables:
set “ANDROID_NDK_PLATFORM=android-9”
set “ANDROID_TARGET_ARCH=armeabi-v7a”
set “ANDROID_BUILD_TOOLS_REVISION=17.0.0”
set “ANDROID_NDK_HOST=windows-x86_64”
or
set “ANDROID_NDK_HOST=windows”
.. depending on which NDK you downloaded.

可以尝试不添加,我使用android-ndk-r8e-windows-x86.zip这个NDK并且设置好NDK路径以后,Qt自动添加变量,但不会在系统环境变量中修改。如下图:

environment

可以生成APK,可以安装运行,如下图:

Screenshot_2013-08-15-14-33-17

Written by liby

八月 13th, 2013 at 3:30 下午

Posted in 技事巧事

Tagged with , ,