向AIDE(安卓设备上的Android Studio)导入aar库

AIDE是一款安卓版的Android Studio,可以直接在安卓设备上编写安卓程序,无需使用Windows或Mac或Ubuntu电脑。这里推荐这一款AIDEPro,地址:AIDEPro。这款AIDE不仅支持普通安卓程序开发,还可以导入额外的JAR,支持Maven,Aapt,Gradle等。

在编写一个安卓程序时,我们很多时候,需要导入一些AAR库,来让安卓程序支持某些厂商的设备特定的API,且界面符合要求。例如,OPPO手表程序开发社区规定:开发的安卓手表程序,如要上传至OPPO手表应用商店,必须在开发时使用OPPO给定的AAR库。这些库里有OPPO手表的标准UI控件,且有一些OPPO手表的Color OS专属的API。否则,可能无法在OPPO手表上正常运行,或运行效果不符合OPPO手表的常规人机交互方式,从而导致该应用在OPPO应用商店无法通过审核。

AIDE显然不是官方的Android Studio,所以不能用Android Studio的方式导入AAR文件。但也并非无法导入。在百度贴吧里有人提了如何导入,但说明不够清晰,不太易懂。见aide导入aar库教程

本文详细说明一下如何向安卓手机/平板上的AIDE导入AAR库。

AIDE导入AAR库是通过Maven。AIDE可以设置本地Maven库,指定一个文件夹的路径即可。步骤是:

  1. 先点右上角的三个点,选择More...,Settings。
  2. 在Settings里的Build & Run里,选择Local Maven repositories,里面设置本地的Maven目录。AAR文件就会从这里面找。

    那么,这个目录应该怎么输入呢?
    这里以一个OPPO手表的Heytap控件的AAR文件为例:
    我们将这个AAR文件放在华为手机的这个文件夹里:

    在此华为手机上,这个文件的目录位置是My phone/Compatible data/AideProjects/Libraries/OPPO/Heytap/7.0.18。注意它的文件名也是Heytap-7.0.18.aar,和目录的最后两节一致。这是规定,后面会再次提到。
    但是要注意:这个目录在AIDE安卓程序上是不可能读出来的。因为当今的国行华为手机使用的系统是Harmony OS Next,并不是一个基于安卓的系统,而是华为自己开发的鸿蒙系统。安卓程序的运行是在一个容器里以兼容的方式运行的。那么,AIDE这个安卓程序是如何读取目录的呢?
    我们可以在AIDE的文件管理器里找到这个文件,然后长按这个文件,点击Copy Path。

    然后随便找个可以输入文本的地方,你会注意到弹出键盘的地方会显示你刚才复制的路径。

    和前面的华为手机里的文件目录做个对比,会发现,/storage/emulated/0/的前缀用于代替/My phone/Compatible data/,之后都一致。也就是说,鸿蒙系统的华为手机把安卓容器里的东西放在了/My phone/Compatible data/里。显然,对于AIDE来说,能够读取的目录是以/storage/emulated/0/为前缀的安卓目录。
    所以,在这里,我们就是把AAR文件放在/storage/emulated/0/AideProjects/Libraries/里。因此Local Maven repositories里应该写:

    除此之外,建议启用Aapt2。在Advanced Settings,Experimental functions里。

    除了要在全局设置里导入AAR以外,还要在具体的项目里导入这个AAR库。
    新建一个AndroidX项目。然后在项目里的app里的build.gradle里(注意,是项目的app目录下,不是项目根目录下哦!),在dependencies里加一句implementation 'OPPO:Heytap:7.0.18'

    在这里说明一下:OPPO:Heytap:7.0.18表明从Local Maven repositories(即/storage/emulated/0/AideProjects/Libraries/)里进入OPPO/Heytap/7.0.18。与此同时,目录的最后两节(即Heytap和7.0.18)也代表了包名和版本。所以,文件的命名也必须为HeyTap-7.0.18.aar(即目录的最后两节,中间用-连接) ,否则系统无法读取。
    此时刷新Maven,等待片刻,系统compile基本成功,但有个错误:

    这里就把minSdkVersion改成24。不科学,但算个临时解决方案。
相关推荐
nnerddboy17 分钟前
Rust教程04:引用、借用与切片
开发语言·后端·rust
Rain的Java大神之路27 分钟前
线上接口负载满了如何解决
java·数据库·redis·后端·缓存·面试·架构
jerryinwuhan40 分钟前
《Python数据预处理》第四章
开发语言·python
长江&后浪42 分钟前
防火墙的描述
开发语言·网络·php
counting money1 小时前
Tomcat 专题:从基础架构到性能调优与 WebSocket 实战
java·websocket·tomcat
观无1 小时前
若依EasyExcel实现单元格合并
开发语言·前端·javascript
雨晨源码(同名B站)1 小时前
基于Python的网易云音乐评论数据情感化分析系统 音乐爬虫信息可视化 |SnowNLP评论情感分析
开发语言·hadoop·爬虫·python·信息可视化·毕业设计
我不是疯子是傻子1 小时前
串口通信数据帧粘包拆包再进化:基于 Qt 的滑动窗口与 CRC 校验实战
开发语言·qt
程序员老陆1 小时前
Qt中实现窗口真全屏(覆盖Windows任务栏)
开发语言·windows·qt
xiaohaiAIgeo1 小时前
【2026年】HG/T 20656-2024化工暖通空调设计规范:新版标准的变化与影响
java·前端·javascript·科普知识