简体中文
从在HBuilder/HBuilderX菜单里点真机运行,程序会执行如下几个步骤:
手机驱动
、usb口、数据线、手机硬件等多种问题造成连接失败。可按如下步骤依次排查问题:
HBuilderX支持项目类型较多,只有uni-app
、5+app
、wap2app
可以真机运行。它们都会在项目根目录下有个manifest.json
文件(uni-cli项目会在src目录下有manifest.json)。
如果是web项目,不能运行到手机,只能运行到浏览器。
如果项目管理器显示项目图标的话,web项目前面的图标是W,5+app和wap2app的图标是A,uni-app的项目图标是方型U,uni-app x的项目图标是圆形U。
如果项目类型未能正确识别,可以对项目点右键 - 重新识别项目类型
OS的资源管理器,是否可以发现手机设备。如果插入usb线后电脑检测不到手机设备,那么hx也肯定检测不到。
此时遇到问题一般是:
usb和线的问题,可以通过交叉验证来排查具体的问题。
如果您使用的是模拟器,可以不关心usb口和数据线的问题。
老版的windows需要安装手机驱动。如果拒绝安装驱动,也无法检测到手机。安装驱动精灵
或360、腾讯的各种手机助手
或华为手机助手可解决驱动安装问题。
如果在启动HBuilderX后才安装驱动连接上手机,可能需要重启HBuilderX。
如果你的itunes也连不上你的iOS设备,那HBuilderX肯定也连不上。
有的电脑会停用 Apple Mobile Device Service,这是一个windows系统服务,停止后itunes也无法连接iOS设备。可以在 windows控制面板的服务中手动启动,也可以直接启动itunes,因为itunes启动后会自动启动 Apple Mobile Device Service。
Apple Mobile Device Service 服务启动后,需要重新插拔iOS设备才能检测到。
HBuilderX真机运行并不需要一直开着itunes。itunes仅用于验证手机与电脑是否可正常连接。
如果您的Android手机已开启USB调试模式
,那么数据线连接好电脑和手机后,手机端会弹出确认框,询问是否同意该电脑调试本手机。点击同意进行授权。
如果手机未开启USB调试模式
,那么按如下步骤开启。
Android手机的设置
中,在系统
(不同rom可能名字不一样,有的叫系统和更新
)中,有一个开发人员选项
。
如果你找不到这个选项,那说明这个rom默认隐藏了该选项。此时需要上网查一下这个rom如何打开开发人员选项
。
比如华为手机是在设置
的关于手机
里,连续点击7次版本号
。然后在返回到之前的系统和更新
中找开发人员选项
。
找到开发人员选项
后,往下翻,有几个设置项:
以上设置完成后,如果数据线和电脑连接正常,那么手机端会弹出一个确认框:是否允许该电脑调试本手机。点击同意。并且最好是把始终同意该设备调试勾上。
如不小心拒绝,需要重插手机或重启电脑。
如未弹出询问框,可以拔线重插。
注意,Android5.0及以上系统,不要使用访客模式。这种模式下无法成功运行。
由于Android的开源性,不少国产Android rom的魔改造成兼容性问题:
iOS设备比较简单,数据线连接好电脑和手机后,手机端会弹出确认框,询问是否同意该电脑调试本手机。点击同意进行授权。
特别注意:Windows连接Android手机,一定要确保电脑已安装相应的手机驱动。
在前述工作完成后,终于到了HBuilderX的环节了。
HBuilderX自带一个ADB,用于调试Android手机。在HBuilderX的安装目录的\plugins\launcher-tools\tools\adbs\adb.exe
您也可以在HBuilderX的设置-运行设置中,选择其他的adb和端口。有些三方模拟器必须使用它自定义的端口才能连接。这需要查阅三方模拟器提供商的官方说明。
但如果您自定义了adb和端口,可能只能连接指定的模拟器。连接其他真机时可能无法识别,此时需要清空自定义设置。
当HBuilderX检测手机时,系统进程中会出现adb.exe。如果系统进程出现多个adb.exe,也可能还有其他名字,比如tadb.exe、kadb.exe,请把HBuilderX关闭,然后把进程里的相关adb进程都强制杀掉。
如果您在HBuilderX的运行界面检测不到手机,可以在cmd窗口里找到HBuilderX的安装目录的 \plugins\launcher-tools\tools\adbs\adb.exe,执行命令:adb.exe devices
这个命令就是google官方的检测手机的命令,如果这个命令拉出的device列表是空的,那么如下可能:
有时mac上不得不修改adb_usb.ini
Android的ADB服务
已经被大量软件滥用,除了各种手机助手自带adb,其他如QQ、搜狗输入法、暴风影音、酷狗音乐、阿里旺旺等众多软件都自带adb
。
有些工具的adb
版本低且独占手机通道,就会导致HBuilderX无法连接手机。
adb.exe
相关进程(包括kadb.exe
等),在任务管理中右键该进程,打开文件位置,查看该进程是什么软件启动的。adb.exe
文件重命名一下,实在不行卸载了这些流氓软件。adb.exe
(包括kadb.exe
等),再试。如果你找不到被谁占用,则还可以使用如下方式检测,寻找幕后黑手:
5037
的tcp连接
,在命令行中输入:netstat -ano | findstr 5037
在输出结果中找到类似下面的一行: TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 5816 如果内容为空,可能是没有程序在占用adb端口。
或者使用 netstat -ano | findstr 5037>d:/1.txt 输出到文件中查找。
根据查询结果确认端口为5037的连接被那个进程占用,结果中显示的“5816”表示占用adb端口的进程PID。
在命令行中输入:tasklist | findstr 5816
在输出结果中找到类似下面的一行:
adb.exe 5816 Console 0 4,440 K
adb.exe(名称一般不是adb.exe,以adb.exe举例)为启动的adb进程。
或者手工在任务管理器中定位这个进程,打开任务管理器后,进入进程选项卡,如果列表里有PID,直接找;如果列表里没有PID,点菜单查看-选择列,勾上PID。
如果以上方式仍然不行,还有一种可能是手机对adb的版本有特定要求(遇到一些魅族手机有此问题),此时需要更换HBuilder的adb版本。
HBuilder安装目录下带了多个版本的adb。
替换版本前,将默认版本的adb.exe备份下。然后把其他版的adb.exe拷贝出来替换主目录下的exe。
当然也可下载Android SDK,将其中的adb替换HBuilderX自带的adb。
如果上面的方法还无法解决,菜单【帮助】【查看运行日志】,看下日志中存在什么相关的错误。 也可到DCloud论坛发帖。发帖时,详细说明操作系统信息、HBuilderX版本号、手机型号以及手机系统信息,并提供运行日志。
iOS设备连接比较简单,电脑安装itunes(或iTools),只要这些软件能连上iOS设备,HBuilderX就能连上。
[Windows 32位 iTunes]下载地址、所有版本的iTunes下载地址
[Windows 64位 iTunes]下载地址、所有版本的iTunes下载地址
微软应用商店
下载;建议从如上地址下载iTunes;如果是第一次安装完iTunes,建议重新启动电脑64位
, 且HBuilderX的版本低于3.4.0,请下载12.9.4.102
之前的iTunes32位
,请下载12.9.4.102
之前的iTunes如果以上方案都无法解决,有可能是因为本地库与iTunes带的库冲突了, 一般是iTunes库目录(32位系统目录为:C:\Program Files\Common Files\Apple\Apple Application Support,64位系统目录为:C:\Program Files (x86)\Common Files\Apple\Apple Application Support)下的dll文件 和系统库目录(32位系统目录为:C:\WINDOWS\system32,64位系统目录为:C:\Windows\SysWOW64)下的dll重名, 可将iTunes库目录下的同名dll文件拷贝到系统库目录下,或者将系统目录下的同名dll文件重命名或删除,然后再重启HBuilder或者重试真机运行。
有时iTunes安装时依赖库会丢失,需要重装iTunes解决问题。
iTunes无法检测到手机,iTunes弹窗提示:iTunes 在您的电脑上检测到不兼容的蓝牙软件,可能无法正常运行
。
请禁用或更新某些蓝牙驱动。或参考Apple 论坛解决方案
Preferences --> Locations
,设置该界面中的 Command Line Tools
项,选择正确的Xcode
版本即可发生此情况一般为检测到手机后,中间因为其他软件连接断开了,需要重新插拔手机或重启HBuilderX。
“安装HBuilder基座App失败,请使用手机助手手动安装xxx\android_base.apk。”
时,基本都属于这种情况。参考https://ask.dcloud.net.cn/article/1336
请尝试以下方法解决:
打开USB调试模式
请尝试以下方法解决:
Android没有root的手机只有SDCard才有权限。不过此SDCard并不是非得外插一张实体sd卡,是手机里一个叫SDCard的根目录。 如果是使用Android模拟器,在模拟器里可以配置SDCard是否存在及大小。
此情况已过期,目前正常手机都有SDCard目录。
Android手机第一次安装基座应用时,手机端大多有各种杀毒软件要检测一会才会放行,需要等一会。
这是应用的js代码的问题,启动画面的关闭是可配置的。参考 https://ask.dcloud.net.cn/article/110
iTunes支持wifi同步,如果iOS设备启动了wifi同步,电脑端的iTunes就可以检测到,进而HBuilder也可以检测到。
这种情况是adb连接手机成功,但copy项目文件到手机上失败了。重新运行真机调试。 或者检查待运行工程的目录名文件名是不是有特殊符号或超长导致Android不识别。
INSTALL_FAILED_CPU_ABI_INCOMPATIBLE
参见genymotion模拟器报INSTALL_FAILED_CPU_ABI_INCOMPATIBLE的解决办法 其他模拟器的适配在论坛中搜索即可。
参考https://ask.dcloud.net.cn/article/565
HBuilderX 3.5.3之后的版本,App真机运行 使用Node运行,不再依赖Java。
如果您遇到以下错误,请先查看基座类型:
如果以下解决方法,没有解决问题,请到 Ask论坛详细说明问题(需要包含操作系统、HBuilderX版本、项目信息、基座信息、手机信息、控制台截图等,详细的信息有助于我们排查问题)
尝试以下解决方法
离线SDK Android Studio制作的自定义基座
, 检查下是否缺少implementation 'com.squareup.okhttp3:okhttp:3.12.12'
, implementation 'com.squareup.okio:okio:1.15.0'
, 如果缺少请添加它们。离线SDK Android Studio制作的自定义基座
, 可以尝试使用HBuilderX 云打包自定义基座,看下是否正常。遇到mumu模拟器问题,请尝试以下解决方法
某些情况下,如下图所示,点击菜单没有反应。
运行菜单点击响应正常
,操作系统环境变量
更改Node变量后出错,请清除操作系统环境变量中配置的Node变量。HBuilderX/plugins/launcher
下代码,请点击HBuilderX菜单【工具】【插件安装】,卸载重装App真机运行插件。