OpenHarmony4.1Release无法运行debug应用问题分析
1 关键字 debug; 4.1Release; 应用; 2 开发环境 系统版本: 4.1-Release DevEco Studio版本: 4.0 Release (build:4.0.0.600) SDK版本: 4.0.10.13(及以上) 设备型号: 开发者手机 3 问题描述 在适配开发者手机4.1Release应用过程中,发现分发中心能成功安装,但是无法正常启动。 4 问题原因 开发者手机
1 关键字
debug; 4.1Release; 应用;
2 开发环境
系统版本: 4.1-Release
DevEco Studio版本: 4.0 Release (build:4.0.0.600)
SDK版本: 4.0.10.13(及以上)
设备型号: 开发者手机
3 问题描述
在适配开发者手机4.1Release应用过程中,发现分发中心能成功安装,但是无法正常启动。
4 问题原因
开发者手机4.1Release版本系统参数const.security.developermode.state
为空,而解压分发中心hap时发现其module.json
的debug
配置为true
{
"app": {
···
"debug": true,
···
},
}
5 解决方案
方案一 应用层解决
编译构建分发中心时,IDE的Build Mode
改为release
(默认为<None>
)。
方案二 设备层解决
在设备shell空间里执行
param set const.security.developermode.state 1
6 定位过程
通过分析日志可发现
AMS
关键报错01-01 09:02:41.732 776 1529 E C01300/Ability: [ability_manager_service.cpp(CheckDebugAppInDeveloperMode:9019)]Debugging application cannot run in non developer mode. 01-01 09:02:41.732 776 1529 E C01300/Ability: [ability_manager_service.cpp(StartAbilityInner:861)]Generate ability request local error.
根据报错信息查找到对应代码
foundation/ability/ability_runtime/services/abilitymgr/src/ability_manager_service.cpp
文件下的bool AbilityManagerService::CheckDebugAppInDeveloperMode(bool isDebugApp) { if (isDebugApp && !system::GetBoolParameter(DEVELOPER_MODE_STATE, false)) { HILOG_ERROR("Debugging application cannot run in non developer mode."); return false; } return true; }
发现AMS在启动应用时会判断应用的调试类型及当前设备是否支持应用开发模式。
设备是否支持应用开发模式是根据常量
constexpr char DEVELOPER_MODE_STATE[] = "const.security.developermode.state";
来判断的。
在设备shell空间里执行
param get | grep const.security.developermode.state
发现没有此配置,因此表示该设备不支持应用开发模式。
更多推荐
所有评论(0)