安装VULKAN 参考:https://blog.csdn.net/luolinll1212/article/details/113261022

在编译TVM,当config.cmake中将USE_VULKAN 设置为ON时

set(USE_VULKAN ON)

需要下载VULKAN

wget https://sdk.lunarg.com/sdk/download/1.3.268.0/linux/vulkansdk-linux-x86_64-1.3.268.0.tar.xz
cd 1.3.268.0
bash vulkansdk # 编译vulkan
source setup-env.sh # vulkan -> 系统环境变量

安装LLVM

LLVM设置为ON时,需要安装LLVM

apt-get install llvm

安装jdk

从java中https://www.oracle.com/java/technologies/downloads/#java21 中下载jdk 21

jdk版本不能太高,用最新的jdk21版本在进行gradle clean build时,总是报错

D8: java.lang.NullPointerException: Cannot invoke "String.length()" because "" is null,不知道什么原因

最后下载jdk版本17,顺利编译通过

wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz

解压jdk并将jdk的路径加入系统环境变量中:

export JAVA_HOME=/root/3rd/android_jdk/jdk-17.0.9
export CLASSPATH=$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin

安卓maven

下载maven:

wget https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz

解压并配置maven环境变量:

export MAVEN_HOME=/root/3rd/maven/apache-maven-3.8.8
export PATH=$PATH:$MAVEN_HOME/bin

在tvm环境中执行make jvmpkg ,然后执行make jvminstall,这个命令执行完之后,输出结果如下:

注:

jdk与maven建议手动安装,博主原本直接使用的apt-get install 安装,但在make jvmpkg时总是编译不过去


下载android sdk

首先查看android版本对应的android API对应的level

Android api level对照表

因我的Platform Version为Android 8.1 对应的API Level 为27,在官网下载即可,也可以使用android的命令行工具下载

命令行工具下载地址如下:

https://developer.android.google.cn/studio/command-line/sdkmanager?hl=en

只下载Command line tools only下对应系统的包即可

下载sdkmanager:

wget wget https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip

也可查看官方的sdkmanager的使用教程:https://developer.android.google.cn/studio/command-line/sdkmanager?hl=en

sdkmanager "platform-tools" "platforms;android-27" --sdk_root=./android_sdk/

android-xx中的xx代表APIlevel ,--sdk_root 为必选参数,sdk_root指定sdk路径,

下载ndk

sdkmanager --install "ndk;21.4.7075529" --channel=3 --sdk_root=./sdkmanager/

下载license

sdkmanager --licenses --sdk_root=./sdkmanager/

--licenses用于创建lincense

sdkmanager安装参考https://blog.csdn.net/qq_38182842/article/details/110170630

在通过源码配置NDK时,报错:

ndk-build提示设置NDK_PROJECT_PATH变量

解决方法:

1 Android.mk和Application.mk应该在一个“jni”为名字的目录下,这样可以直接用ndk-build编译。

2 如果Android.mk和Application.mk所在目录的名字不是“jni”,需要通过变量指定,例如:

ndk-build NDK_PROJECT_PATH=. NDK_APPLICATION_MK=Application.mk APP_BUILD_SCRIPT=Android.mk

参考链接:https://blog.csdn.net/zqtao0219/article/details/98349905

配置SDK、NDK的环境变量

export ANDROID_HOME=/root/3rd/android_sdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools export NDK_HOME=/root/3rd/android_ndk/ndk/21.4.7075529
export PATH=$PATH:$NDK_HOME

安装gradle ---- 参考:https://gradle.org/install/

unzip gradle-8.5-all.zip

解压并配置环境变量:

export GRADLE_HOME=/root/3rd/gradle/gradle-8.2
export PATH=$PATH:$GRADLE_HOME/bin

执行gradle clean build用于生成apk文件

注:

在执行gradle clean build中出现报错,

Connect to maven.google.com:443 [maven.google.com/142.251.43.14] failed: Connect timed out

查阅资料是:https://maven.google.com 国内用不了

解决方案:

将build.gradle下的maven{https://maven.google.com} 替换成

maven {
// url 'https://maven.google.com'
url 'https://dl.google.com/dl/android/maven2/'
}

保存退出,重新执行gradle命令即可。

在执行gradle clean build中,出现time out超时错误,报错信息如下:

原来将https://maven.google.com 修改为:https://dl.google.com/dl/android/maven2/发现,这个修改后的地址,该地址并不能正常访问

后查阅资料,将该url地址修改为阿里云的仓库地址(参考:Android项目报无法连接Connect to dl.google.com:443 dl.google.com/114.250.65.33

在project下的build.gradle修改为阿里云仓库地址

maven { url 'https://maven.aliyun.com/repository/google/'}
maven { url 'https://maven.aliyun.com/repository/jcenter/'}

截图如下:


运行结果

gradle clean build之后,会在app/build/outputs/apk生成app-release-unsigned.apk文件

使用dev_tools/gen_keystore.sh生成签名,并使用dev_tools/sign_apk.shapp/build/outputs/apk/release/tvmrpc-release.apk文件进行签名

最后就是要将签名的apk文件上传到Android端并安装它:

$ANDROID_HOME/platform-tools/adb install app/build/outputs/apk/release/tvmrpc-release.apk

参考:https://www.runoob.com/java/java-environment-setup.html#linux-install

https://www.runoob.com/maven/maven-setup.html

TVM 安卓环境搭建部署的更多相关文章

  1. Java ee 与安卓环境搭建个人心得

    最近加了个IT俱乐部,第一次作业就是搞定eclipse,完成Java ee 与安卓环境搭建.为此我上网看了好多教程,之前我安装了Java,可以说省了不少事,而且还了解一点安装方法.流程网上都有,但是不 ...

  2. zabbix环境搭建部署(一)

     Linux高端架构师课程 Linux实战运维国内NO.1全套视频课程 QQ咨询:397824870  > 监控报警 > zabbix环境搭建部署(一) zabbix环境搭建部署(一) 监 ...

  3. VS 2017 开发安卓环境搭建 问题总结

    VS 2017可以开发安卓啦,之前一直想尝试开发安卓,但是由于时间忙, Java只学了个基础,不如C#熟练所以一直没有机会接触安卓开发.既然需要利用VS2017开发安卓,那么第一步就是了解VS2017 ...

  4. 08- Tomcat入门与环境搭建部署

    环境搭建:网站文件(开发人员提供),相关软件(web服务器,应用服务器,数据库软件),硬件(服务器设备上),网络环境. 开发人员提供:部署文档说明书(操作系统版本,硬件配置,服务器软件及相关版本,部署 ...

  5. ionic+angular+cordova 安卓环境搭建

    1.java环境配置 下载java jdk 百度搜索java jdk安装完后在cmd窗口输入Java -version 显示以下即为安装成功.然后把java jdk配置到环境变量. (1)选择[新建系 ...

  6. 安卓环境搭建(1)hellow world

    本系列适合0基础的人员,因为我就是从0开始的,此系列记录我步入Android开发的一些经验分享,望与君共勉!作为Android队伍中的一个新人的我,如果有什么不对的地方,还望不吝赐教. 在开始Andr ...

  7. Spark集群环境搭建——部署Spark集群

    在前面我们已经准备了三台服务器,并做好初始化,配置好jdk与免密登录等.并且已经安装好了hadoop集群. 如果还没有配置好的,参考我前面两篇博客: Spark集群环境搭建--服务器环境初始化:htt ...

  8. (转载):ganglia之环境搭建部署

    转载:http://www.360doc.com/content/19/0211/12/62122823_814215724.shtml 借鉴:https://blog.csdn.net/lswnew ...

  9. k8s1.20环境搭建部署(二进制版本)

    1.前提知识 1.1 生产环境部署K8s集群的两种方式 kubeadm Kubeadm是一个K8s部署工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群 ...

  10. Ionic 2+ 安卓环境搭建

    安装 安卓studio https://developer.android.com/studio/index.html 设置一个环境变量 _JAVA_OPTIONS:-Xmx512M 添加androi ...

随机推荐

  1. QT5笔记:3.手动撸界面和可视化托界面混合

    3.手动撸界面和可视化托界面混合 参考视频:https://www.bilibili.com/video/BV1AX4y1w7Nt 3.1 工具栏可以通过在UI界面右键选择添加工具栏 3.2 设置窗口 ...

  2. JUC并发—12.ThreadLocal源码分析

    大纲 1.ThreadLocal的特点介绍 2.ThreadLocal的使用案例 3.ThreadLocal的内部结构 4.ThreadLocal的核心方法源码 5.ThreadLocalMap的核心 ...

  3. Ai 系列 —— DeepSeek 初步介绍

    DeepSeek 初步使用介绍 背景 Ai 正在慢慢在改变我们的生活,比如老一辈可能已经在用豆包(字节跳动推出的AI聊天机器人) 前端开发,某些公司内部已在使用图生文(设计稿生成前端代码) 网上也有许 ...

  4. php实现地址跳转的方式

    在PHP中,实现地址跳转主要有以下几种方式: 1. 使用 header() 函数 header() 函数用于发送原始的 HTTP 头信息,常用于实现页面跳转. <?php header(&quo ...

  5. 探秘Transformer系列之(12)--- 多头自注意力

    探秘Transformer系列之(12)--- 多头自注意力 目录 探秘Transformer系列之(12)--- 多头自注意力 0x00 概述 0x01 研究背景 1.1 问题 1.2 根源 1.3 ...

  6. IvorySQL 升级指南:从 3.x 到 4.0 的平滑过渡

    日前,IvorySQL 4.0 重磅发布,全面支持 PostgreSQL 17,并且增强了对 Oracle 的兼容性.关于 IvorySQL 4.0 的介绍,各位小伙伴可以通过这篇文章回顾:Ivory ...

  7. Draw.io:你可能不知道的「白嫖级」图表绘制神器

    介绍 draw.io 是一个在 GitHub 上开源且拥有近十年发展历史的成熟项目,它是一款用于绘制 UML 图表的工具. 如果你曾经为流程图的绘制而流泪,又或是在夜里和UML大战到失眠, 不妨试试它 ...

  8. BUUCTF---keyboard

    题目 ooo yyy ii w uuu ee uuuu yyy uuuu y w uuu i i rr w i i rr rrr uuuu rrr uuuu t ii uuuu i w u rrr e ...

  9. Spring Boot的常用注解

    在Spring Boot中,注解(Annotation)是核心特性之一,广泛用于配置和简化开发.以下是Spring Boot中一些常用的注解及其示例: 1. @SpringBootApplicatio ...

  10. JDK7-时间类、时间格式化类--java进阶day07

    1.Date类:表示时间的类 1.Date常用的构造方法 . 2.Date常用的成员方法 1.getTime:返回从时间原点到对象设定的时间之间的时间 2.setTime:将对象的时间设置为setTi ...