如何给火山程序添加图标?

avatar 2019年6月29日12:06:56 1 2,075

加入VIP,可以享受无广告视频播放!更可享受教程提前看!详情猛戳:VIP介绍

如果我们不对项目设置图标,则我们看到最终生成的app的图标为默认的机器人图标,事实上,我们是可以设置火山app自定义的图标的。你只需要准备一个jpg或png等的图标文件即可。

本例程相对上一个例程代码上没有做什么修改,但是设置好了程序的图标,图标文件放在项目文件夹seticon_day9\src\icon\chat.jpg文件夹下的chat.jpg文件。

设置方法很简单,点击菜单的项目-当前项目属性,在程序图标一栏选择图标路径即可,尽量是英文路径,避免出现报错,若报错,可以考虑下是不是含有中文的问题。

然后附上咱们的源码下载地址:

内容已经隐藏,请注册为本站会员后查看

 

上面讲的比较简单,就不多说什么了,大家看源码效果就好。

下面我来讲一个今天遇到的无法在调试时把app推送安装到夜神模拟器的问题和解决方案。

首先我们需要了解到,将app推送到模拟器是什么原理。其实是通过安卓的adb工具来推送的。adb这款工具在安卓的sdk包的tools中,可以通过它来使用命令行的方式调试一些安卓程序,获取一些高级的信息。在火山程序中的应用,应该仅仅是用来连接模拟器和推送app。

在火山app的调试窗口我们可以看到例如连接到设备:127.0.0.1:62001这样的提示。这个地址即为设备的本地连接地址。62001表示夜神模拟器的默认端口地址,其他模拟器有其他的地址。但夜神模拟器也不仅仅只有62001这个端口地址,这里还有些坑和需要了解的知识,后面我会详述。

在火山中可以在工具-选项-安卓项目管理器-全局-欲连接到的设备地址一栏填入62001来表示夜神模拟器。如果留空这里的设置,则默认查找目前在线的设备来推送,当然如果你只有一个模拟器设备的话,推送的自然是正确的了。

我这次遇到的问题是,夜神模拟器提醒我升级软件,我进行了升级,升级完成后我发现在调试火山程序时提示连接失败了,说找不到设备。我想我明明开着夜神模拟器呀?怎么会连接不成功呢。

经过查资料和测试,最后发现的原因是,adb的版本在夜神模拟器里提供的跟在安卓adk提供的不一样

首先我们使用cmd(我用的是管理员模式,下同)进入安卓的adb所在目录:voldev\plugins\vprj_android\sdk\android\platform-tools,这里面有个adb.exe,前面是火山程序的安装路径,大家按自己电脑的来。

输入命令:

adb version

显示的版本号为1.0.39(你可能是其他的显示),而我来到夜神模拟器的安装目录:Nox\bin,前面的部分为夜神模拟器的安装路径,大家按自己的来。

输入下述两个命令:

adb version
nox_adb version

显示的版本结果均为1.0.36,这里就表示不一样了。

最后经过测试的确是版本不同的原因(吐槽一句adb还真是有点儿傻傻的)。

解决方案是把大家的版本号变成一样即可。

我这里是修改的安卓sdk中的adb.exe,首先添加.bak后缀名把原有的备份,以防万一,然后把夜神模拟器安装bin目录中的adb.exe复制过来。

此时已经可以正常用火山IDE来调试app了。【在飞扬16版本中测试,有时候能自动识别,有时候不能,需要指定正确的端口号火山才能识别,比如不为62001而为62025,需要指定才能识别。如果不能识别报错,请指定后编译运行】


同时我也发现了另外一个事情,就是这次正常连接后,看到火山的调试窗口显示的端口信息不再是62001了。而是62025。为什么呢。

首先本质原因是因为我的打开的模拟器是多开的。夜神模拟器是支持多开的,我新建了一个用来做课程演示用。如果你打开的模拟器是它安装时默认创建的那个,通常来讲端口就是62001,如果打开的是你新建的后面的多开的模拟器,则端口可能会有变化。

可以通过下述cmd命令来查看当前的模拟器端口和地址(先进入adb的目录或将adb目录加入环境变量):

adb devices

我们可以看到会展示地址为127.0.0.1:62025。【特别提醒:特别需要注意的是,如果你先打开cmd窗口,再打开模拟器,有可能识别不到设备。请先打开模拟器,再打开cmd窗口查看即可

我们可以用下述命令来连接到该端口地址:

adb connect 127.0.0.1:62025

如果你现在确实打开着这台模拟器的话,则会返回结果:

already connected to 127.0.0.1:62025

我们还可以用系统端口查询的方法来知道现在是什么端口被占用着,后面这些命令不需要进入adb目录或使用adb,用的是系统自带的程序,我们可以用这里学到的知识来查询其他端口的占用情况。

如果查看现在电脑上所有端口的占用情况,可以用如下命令:

netstat -ano

如果需要实现我们上述的查询目的,首先我们需要打开任务管理器,比如夜神模拟器,在进程选项卡,找到NoxVMHandel Frontend这个名称,然后打开PID列的显示,获取它的PID,比如本例为13736。
然后在cmd中输入如下代码来查询:

netstat -ano|findstr "13736"|findstr "ESTABLISHED"

用来查找含有13736以及ESTABLISHED那一行,因为打开该端口被占用时,状态为ESTABLISHED。我们可以看到返回:

TCP    127.0.0.1:62025        127.0.0.1:54625        ESTABLISHED     13736

其中每一列分别表示的含义为:协议,本地地址,外部地址,状态,PID,其中这个本地地址就是adb要连接的地址了。

【补充:实际应用中,我也发现有的时候状态不一定为ESTABLISHED而是为LISTENING或者其他,这个方法不是那么适合查看当前模拟器的端口是哪个。用adb devices命令是最好的】

此处仅做研究和了解,不是重点知识,大家看个故事看一看即可。

avatar

发表评论

您必须才能发表评论!

目前评论:1   其中:访客  1   博主  0

    • avatar 雪山凌狐 3

      :razz: 畅言评论系统广告很不喜欢,去广告还要给很多钱,决定暂时启用畅言,使用本站自带评论系统,欢迎大家多多评论!