1. 随便写写

    今天突然被告知手上的Android项目要交由安卓的同事来做,于是,研究了这么久的东西终于。。。派不上用场了,哎。接下来会对这段时间内的一些经验进行总结归档,一是为了以后查找相关问题的时候有迹可循,二是对于这一块我确实还挺感兴趣的,项目没了自己也会继续研究下去,相信这部分的博客会不断更新壮大的,加油!

 

2. 需要的东西

    想要在Ubuntu下搭建Qt for Android的环境,你需要以下四样东西:

    --Java JDK

    --Android SDK & NDK

    --Android Studio

    --Qt Creator

    别的都不用多说,ndk是安卓用来编译C和C++代码的,Android Studio对我来说功能就是可以管理更新SDK和AVD(Android Virtual Device),因为我的IDE必须是Qt Creator!!

    因为这些东东不同的版本对于最后编译和运行都有影响,我就以我实践成功的版本来说,下面都会说明每个东东我下载的版本是哪个,如果你碰到了奇怪的问题,可能换个版本就可以了。另外稍微老一点版本的Qt还要有ant,我的Qt版本是5.12.2,并没有要求这个,所以我也没装。

 

3. Java JDK (jdk-8u201-linux-x64)

    下载后安装到你的指定路径,并用 sudo gedit /etc/profile命令打开profile文件,在profile文件里面配置环境变量,如下:

JAVA_HOME=/usr/java/jdk1.8.0_201  #(根据你的实际安装路径)PATH=$JAVA_HOME/bin:$PATHCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport JAVA_HOMEexport PATHexport CLASSPATH

     然后输入命令 source /etc/profile 使配置生效。

     最后用命令 java -version 检查Java环境是否配置成功,结果如下:

        

 

4. Android SDK&NDK (android-sdk-r24.4.1 & android-ndk-r19c)

    4.1 下载后解压到自己指定的路径下,我的如下

               /usr/Android/android-sdk-linux

               /usr/Android/android-ndk-r19c

    4.2 用 sudo gedit /etc/profile打开文件,配置环境变量               

NDK_HOME=/usr/Android/android-ndk-r19cexport NDK_HOMEexport PATH=$PATH:$NDK_HOMEANDROID_SDK_ROOT=/usr/Android/android-sdk-linuxexport ANDROID_SDK_ROOTexport ANDROID_HOME=/usr/Android/android-sdk-linuxexport PATH=${PATH}:${ANDROID_HOME}/toolsexport PATH=${PATH}:${ANDROID_HOME}/platform-tools

    4.3 如果你用的是64位虚拟机,需要执行下面的命令配置依赖项,才能运行adb等32位可执行文件:

sudo apt-get install libstdc++6:i386 zlib1g:i386 libncurses5:i386

    4.4 要运行模拟器,还需要如下命令配置依赖项:

sudo apt-get install libsdl1

    4.5 如果想升级Android SDK,进入SDK目录下的Tools目录,用android工具更新SDK,命令如下:

./android update sdk

 

5. Android Studio

    这个版本没有限制,下载直接解压安装,一路默认就可以了。其实不装这个也可以,但是在安装它的时候可以勾选一个Android Virtual Device选项,会为我们自动下载一个安卓的虚拟设备,CPU架构好像是x86,所以我就下载了,省得之后再去创建虚拟机。

    它还可以管理更新SDK,在安装Android Studio的时候,如果你之前已经安装了SDK,那么它会检测到你SDK的路径并帮助你更新,如果没有安装SDK,它会帮你下载。

 

6. 安装Qt并配置 (qt-opensource-linux-x64-5.12.2.run)

    6.1 下载并安装,安装时勾上与Android相关的选项。

    6.2 为Qt设置Java和Android环境

        6.2.1 默认情况下,当我们配置好上面的Java和Android环境后,打开Qt Creator,它会自动检测并配置好这些环境。如果没

        有,看下一步。

        6.2.2 在Qt Creator的工具->选项->设备->Android下:

                  

                   

    6.3 设置Android相关的构建套件

        6.3.1 默认情况下,Qt会自动检测到Qt版本,编译器以及调试器,然后配置好套件。

        6.3.2 如果没有,在下图位置配置,设置构建套件是Qt的基础,不多说啦

                     

 

7. 碰到的问题

       把上面的工作都完成后,就可以在Ubuntu环境下进行Qt for Android的开发了,下面记录了两个我在开发完程序后运行时碰到的问题。

    7.1 emulator Error

        

         这里说的问题是,emulator(模拟器)找不到Nexus_5X_API_28_x86.ini文件和$HOME/.android/avd文件夹,这两个

    在/root/.android下面都有,直接拷贝过来即可:

sudo cp /root/.android/avd/*.ini /home/zhounixing/.android/avd/sudo cp –r /root/.android/avd/*.avd /home/zhounixing/.android/avd

    7.2 KVM Error

        KVM requires a CPU that supports vmx or svm

        这里是说没有安装KVM或者KVM不可用,分两种情况:

        7.2.1 如果你的Ubuntu是在真机环境下,用kvm-ok来检查KVM

                 

             如果如上图所示,说明KVM确实有问题,需要手动install一下

sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils

        7.2.2 如果是在虚拟机的环境下,勾选虚拟化引擎相关的选项,步骤如下:

                 --将虚拟机关机

                 --右键你的虚拟机

                 --在设置->硬件->处理器->虚拟化引擎中,勾选上"虚拟化Intel VT-x/EPT或AMD-V/RVI(V)"选项

                 

        7.2.3 以上两种情况分别解决后,再用命令kvm-ok来检查KVM,若如下图所示,则证明成功解决

                 

 

8. 小结

    至此我们就可以在Ubuntu环境下进行Qt for Android的开发,并且成功运行或者调试了, 除了安卓虚拟设备,我们还可以连接手机来调试运行,需要打开手机的开发者模式,然后将USB选项从"仅充电"改成"传输文件"。

 

~~环境的搭建到这里就全部说完了,可能一步步照着上面的步骤来,你依然会碰到我没有碰到过的问题,因为这里的坑确实挺多的,但是网上大多都能找到解决办法,都不是什么太难的问题。

更多相关文章

  1. 跟Google学习Android开发-起始篇-支持不同的设备(3)
  2. android集成Umeng推送获取不到device_token也收不到消息,但是在Um
  3. 【原创】Android(安卓)判断默认数据网络是否为开,若关则跳转到网
  4. Android:ERROR: Cause: com.android.build.gradle.internal.ide.D
  5. Android(安卓)Gradle Plugin + BuildTool + Gradle 版本依赖关系
  6. Android移植之系统配置新产品篇
  7. Android(安卓)SDK Platform 4.4.2【离线环境搭建】
  8. android获取全局context对象
  9. android 6.0权限配置

随机推荐

  1. Android统计图表之柱状图(条形图)
  2. 自定义gradle插件
  3. 常用的布局和View常用属性
  4. android实现TextView多行文本滚动
  5. Android(安卓)自定义Menu
  6. Android应用程序开发的五大概念
  7. Android(安卓)组件属性
  8. Qt on Android: Android(安卓)SDK安装
  9. Eclpise导入android SDK自带的API demos
  10. android 架构体系