
回复
作为鸿蒙开发的基础必修课,正确配置应用的包名、图标、版本和权限是确保应用上架和运行的关键。
包名作为应用的唯一标识符,必须遵循反向域名命名法,具体要求:
com.huawei.harmony.app
在多模块项目中,建议采用层级化包名结构:
com.example.harmonyapp # 主模块包名
com.example.harmonyapp.feature1 # 功能模块1
com.example.harmonyapp.feature2 # 功能模块2
{
"app": {
"bundleName": "com.example.myharmonyapp",
"vendor": "ExampleTech",
"version": {
"name": "1.0.5",
"code": 105
}
}
}
鸿蒙应用图标需提供多尺寸适配,标准尺寸包括:
支持根据设备主题动态切换图标:
{
"app": {
"icon": {
"light": "$media:icon_light",
"dark": "$media:icon_dark"
},
"label": "$string:app_name"
}
}
在resources/base/strings/strings.json
中定义多语言标签:
{
"app_name": "我的应用",
"app_name_en": "My Harmony App"
}
通过$string:app_name
引用默认语言,$string:app_name_en
引用英文标签
采用三段式版本号+数字版本码:
主版本号.次版本号.修订号
(如1.2.3)在config.json
中声明支持的设备类型:
{
"deviceType": [
"phone",
"tablet",
"wearable",
"tv"
]
}
各设备类型对应能力差异需在开发中特别处理
鸿蒙权限分为四类:
config.json
中声明:{
"module": {
"reqPermissions": [
{
"name": "ohos.permission.ACCESS_FINE_LOCATION",
"reason": "$string:permission_location_usage",
"usedScene": {
"ability": [
"com.example.ability.MapAbility"
],
"when": "inUse"
}
}
]
}
}
import featureAbility from '@ohos.ability.featureAbility';
import permission from '@ohos.permission';
async function requestLocationPermission() {
const context = featureAbility.getCurrentAbility().getContext();
const result = await permission.requestPermissionsFromUser(
context,
['ohos.permission.ACCESS_FINE_LOCATION']
);
if (result[0].granted) {
// 权限已授予
} else {
// 处理权限拒绝
}
}
reason
字段清晰说明权限用途{
"app": {
"bundleName": "com.example.harmonyapp",
"vendor": "ExampleInc",
"version": {
"name": "2.1.0",
"code": 210
},
"label": "$string:app_name",
"icon": {
"light": "$media:icon_light",
"dark": "$media:icon_dark"
}
},
"deviceType": [
"phone",
"tablet",
"car"
],
"module": {
"package": "com.example.harmonyapp.entry",
"name": ".MainAbility",
"reqPermissions": [
{
"name": "ohos.permission.READ_USER_STORAGE",
"reason": "$string:permission_storage_read",
"usedScene": {
"ability": [
"com.example.ability.MediaAbility"
],
"when": "inUse"
}
},
{
"name": "ohos.permission.ACCESS_NETWORK_STATE",
"reason": "$string:permission_network"
}
]
}
}
问题现象 | 可能原因 | 解决方案 |
---|---|---|
应用安装失败 | 包名已存在 | 更换包名或在控制台查询可用性 |
图标显示异常 | 尺寸不规范或路径错误 | 检查图标尺寸和资源路径 |
权限申请失败 | 配置文件未声明或签名错误 | 确认权限声明和应用签名正确 |
多设备适配问题 | deviceType配置不当 | 根据设备能力调整配置 |
正确的配置是鸿蒙应用开发的基础,建议开发者在项目初期就建立标准化的配置流程,并通过DevEco Studio的配置校验工具进行实时检查。随着鸿蒙系统的迭代,配置规范可能会有更新,需持续关注官方文档以确保兼容性。