Parrot ANAFI GroundSDK(安卓)在Ubuntu 18.04上的部署

目录

  • 一、前言
  • 二、环境准备
    • 1、Ubuntu 18.04
    • 2、Android Studio 3.4及以上
    • 3、JDK1.8.0_321(只要是JDK8 都可)
    • 4、Android NDK Revision 17c for Linux
    • 5、下载安装编译好的LLVM
      • 附:到这里我们的环境变量已经全部完成了, /etc/profile文件内容为
    • 6、下载GroundSDK
  • 三、运行程序

一、前言

  • 接下来我们将在linux环境下进行 GroundSDK-Android 的安装与调试,Parrot官方给的文档大体上没问题,但是我此前从未接触过Android开发,因此遇到了一些坎,特此记录。
  • 以下为官方安装教程链接:
    1、Setup Ground SDK AAR
    2、Install and build GroundSdk
  • 如果某些文件无法编辑,可以使用chmod命令改变文件的权限,注意谨慎使用。

二、环境准备

1、Ubuntu 18.04

  • 我是使用双系统进行安装测试的,如果使用虚拟机,本文可以当作参考。
  • 官网给的提示如下:
    官网提示

2、Android Studio 3.4及以上

  • 官方下载地址:Android Studio

       下载没反应的话可以尝试把下载网址中的 https 换成 http
    
  • 安装 Android Studio: Android Studio Install
    访问不了的看这张图就可以了

       sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 libbz2-1.0:i386  
    

    Parrot ANAFI GroundSDK(安卓)在Ubuntu 18.04上的部署_第1张图片

  • 下载并解压到 /opt/ 目录下,执行命令:

    cd /opt/android-studio/bin/
    ./studio.sh 
    
  • 第一次打开Android Studio会提示我们没有SDK,按照提示下载即可,记下来SDK安装的路径。

  • 我们需要配置环境变量,这里先不配,等下和NDK一起配置。

Parrot ANAFI GroundSDK(安卓)在Ubuntu 18.04上的部署_第2张图片
Parrot ANAFI GroundSDK(安卓)在Ubuntu 18.04上的部署_第3张图片

3、JDK1.8.0_321(只要是JDK8 都可)

  • 从官网下载JDK8到/opt/目录或其它目录下 并解压( 下载链接)
    Parrot ANAFI GroundSDK(安卓)在Ubuntu 18.04上的部署_第4张图片

  • 配置环境变量: vim /etc/profile

      	export JAVA_HOME=/opt/jdk1.8.0_321
      	export JRE_HOME=${JAVA_HOME}/jre
      	export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
      	export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:$PATH
    
  • 记得保存!然后关闭。为了使改动生效,还需执行:source /etc/profile

  • 检查jdk安装是否成功:java -version
    在这里插入图片描述

4、Android NDK Revision 17c for Linux

  • 下载此版本NDK并解压到 /opt/ 目录下:Android NDK Revision 17c for Linux

  • 配置环境变量前有一个小插曲,先下载安装 Repo 工具 (以下内容摘自Parrot官网)

    • Download it from Google APIs
    • Put it in a directory that is included in your path ——>(~/bin)
    • Make it executable with chmod a+x repo
  • 配置环境变量: vim /etc/profile

     ###这里配置了SDK、NDK以及Repo的环境变量
     export ANDROID_HOME=/home/XXX/Android/Sdk
     export ANDROID_SDK_ROOT=/home/XXX/Android/Sdk
     export ANDROID_SDK_PATH=/home/XXX/Android/Sdk
     export ANDROID_NDK_ROOT=/opt/android-ndk-r17c
     export ANDROID_NDK_PATH=/opt/android-ndk-r17c
     export REPO_HOME=~/bin
     
     export PATH=$PATH:$REPO_HOME
    
  • 记得保存!然后关闭。为了使改动生效,还需执行:source /etc/profile

5、下载安装编译好的LLVM

  • 这里使用编译好的LLVM,也可以自己下载源码在本地进行编译,不过耗时太久,占用空间太多,不建议这么做,有兴趣的话可以深入研究。

  • 想本地编译的可以看这位大哥的文章 LLVM_Ubuntu安装,直接下载编译好的步骤也是这位大哥做的,这里我偷个懒,哈哈~

  • 安什么版本的一般都没关系,这里我安装的的是 LLVM 8.0.0,选择 Ubuntu 18.04(.sig) ——> LLVM下载官网Parrot ANAFI GroundSDK(安卓)在Ubuntu 18.04上的部署_第5张图片

  • 配置环境变量: vim /etc/profile

     export LLVM_HOME=/usr/local/llvm/bin
     export PATH=$PATH:$LLVM_HOME
    
  • 记得保存!然后关闭。为了使改动生效,还需执行:source /etc/profile

  • 附:到这里我们的环境变量已经全部完成了, /etc/profile文件内容为

      export JAVA_HOME=/opt/android-studio/jre
      export ANDROID_HOME=/home/XXX/Android/Sdk
      export ANDROID_SDK_ROOT=/home/XXX/Android/Sdk
      export ANDROID_SDK_PATH=/home/XXX/Android/Sdk
      export ANDROID_NDK_ROOT=/opt/android-ndk-r17c
      export ANDROID_NDK_PATH=/opt/android-ndk-r17c
      export LLVM_HOME=/usr/local/llvm/bin
      export REPO_HOME=~/bin
      
      export JAVA_HOME=/opt/jdk1.8.0_321
      export JRE_HOME=${JAVA_HOME}/jre
      export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
      
      export PATH=$PATH:$LLVM_HOME:$REPO_HOME:${JAVA_HOME}/bin:${JRE_HOME}/bin    
    
  • 记得保存!然后关闭。为了使改动生效,还需执行:source /etc/profile
    为了环境变量在当前用户下也可以正常生效,将上述文本复制到——> ~/.profile

     vim ~/.profile 
     source ~/.profile
    

6、下载GroundSDK

  • 首先你需要一个Github账户

     git config --global user.name "Your Name"
     git config --global user.email "[email protected]"
    
  • 选择GroundSDK的下载目录,我放到了 /opt/

      cd /opt/
      mkdir groundsdk
      cd groundsdk
      
      repo init -u https://github.com/Parrot-Developers/groundsdk-manifest
      repo sync
    
  • 到这里,我们的工作已经完成一大半了,下面是 build.gradle 的配置, 编辑build.gradle 有两种方式:

      1、先将工程导入到Android Studio再使用AS编辑
      2、使用vim编辑器编辑: vim /opt/groundsdk/packages/groundsdk-android/groundsdkdemo/build.gradle    
      需要注意的是,配置的是Module下的build.gradle,也就是 build.gradle(Module:gsdk.groundsdk)
      两条线之间的内容是官网给的需要添加的内容,这里有一个十分重要的点,就是这两个依赖的版本号
    
     // Add Ground SDK dependencies
        implementation 'com.parrot.drone.groundsdk:groundsdk:1.8.0'
        runtimeOnly 'com.parrot.drone.groundsdk:arsdkengine:1.8.0'
    
      应该和 https://github.com/Parrot-Developers/groundsdk-android 下图所示版本号对应.
    

    Parrot ANAFI GroundSDK(安卓)在Ubuntu 18.04上的部署_第6张图片
    PS: MVNRepository(这个网站可以用来查看你所引用的依赖都有哪些版本)

  • 接下来运行命令

     cd /opt/groundsdk/
     ./build.sh -p groundsdk-android -t build -j
    
  • 运行成功以后,在你的grandsdk目录下会出现一个 /out文件夹 ,进到内层有以下几个文件夹,代表编译打包过后的程序支持什么系统,我们模拟器选择的系统应该是以下之一。Parrot ANAFI GroundSDK(安卓)在Ubuntu 18.04上的部署_第7张图片

  • 另外:简单来说jcenter马上要停止服务了,所以我们这里需要加上其他仓库,具体可以看官网公告:JFrog官网公告

     repositories {
    	 // Add jcenter repository (if not already present)
     	jcenter()
     	google()
     	mavenCentral()
     }
    
    apply plugin: 'com.android.application'
    
    android {
        defaultConfig {
            // Google Geo API key. Put your own key to enable google Maps related features in demo.
            resValue 'string', 'gsdkdemo_google_geo_api_key', ''
    
    
             // Set minimum SDK version supported by GroundSdk
            minSdkVersion 24
    
            
        }
    
        lintOptions {
            disable 'StringFormatInvalid', 'IconMissingDensityFolder', 'NonConstantResourceId'
            checkDependencies true
        }
    
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_8
            targetCompatibility JavaVersion.VERSION_1_8
        }
    
    }
    
    repositories {
        // Add jcenter repository (if not already present)
        jcenter()
        google()
        mavenCentral()
    }
    
    
    
    dependencies {
        runtimeOnly project(':arsdkengine')
    
        implementation project(':groundsdk')
        implementation project(':sdkcore')
    
        implementation androidXLocalBroadcastManager
        implementation googlePlayServicesLocation
        implementation 'com.google.android.gms:play-services-maps:17.0.0'
        implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
        implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
        implementation 'com.google.android.material:material:1.3.0'
    
    
        // Add Ground SDK dependencies
        implementation 'com.parrot.drone.groundsdk:groundsdk:1.8.0'
        runtimeOnly 'com.parrot.drone.groundsdk:arsdkengine:1.8.0'
    
    
    }
    

三、运行程序

  • 此时我们编译运行代码已经不会出错了,也可以正常安装到模拟器上,但是在运行时会出现’groundsdk demo keeps stopping’的问题,是因为模拟器的系统没有选择正确。
  • 打开AVDManager
    Parrot ANAFI GroundSDK(安卓)在Ubuntu 18.04上的部署_第8张图片
  • 随便选择一个设备,之后选择系统
    Parrot ANAFI GroundSDK(安卓)在Ubuntu 18.04上的部署_第9张图片
  • 打开模拟器,如果出现以下问题,打开终端,输入 sudo chown XXX -R /dev/kvm(XXX是当前登录用户的用户名)
    Parrot ANAFI GroundSDK(安卓)在Ubuntu 18.04上的部署_第10张图片
  • File ----> Sync Project With Gradle Files
  • 运行程序!
    Parrot ANAFI GroundSDK(安卓)在Ubuntu 18.04上的部署_第11张图片
  • 程序运行结果如下:
    Parrot ANAFI GroundSDK(安卓)在Ubuntu 18.04上的部署_第12张图片Parrot ANAFI GroundSDK(安卓)在Ubuntu 18.04上的部署_第13张图片

你可能感兴趣的:(android,ubuntu,android,studio)