成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

跟著小白一起學(xué)鴻蒙—如何編譯OpenHarmony自帶APP

系統(tǒng) OpenHarmony
在主干代碼的applications目錄里聚集了很多原生的應(yīng)用實(shí)現(xiàn),那么如何編譯這些代碼就是我們這篇文章的主要議題。

??想了解更多關(guān)于開(kāi)源的內(nèi)容,請(qǐng)?jiān)L問(wèn):??

??51CTO 開(kāi)源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??

概述

OpenHarmony的主干代碼是開(kāi)源社區(qū)的重要學(xué)習(xí)資源,對(duì)于想進(jìn)行應(yīng)用開(kāi)發(fā)和熟悉OpenHarmony能力的同學(xué)主干代碼是非常重要的資源,在主干代碼的applications目錄里聚集了很多原生的應(yīng)用實(shí)現(xiàn),那么如何編譯這些代碼就是我們這篇文章的主要議題。

使用DevEco導(dǎo)入編譯

導(dǎo)入代碼

#盲盒+碼##跟著小白一起學(xué)鴻蒙#如何編譯OpenHarmony自帶APP-開(kāi)源基礎(chǔ)軟件社區(qū)

自動(dòng)下載npm包

導(dǎo)入應(yīng)用后,IDE工具就會(huì)自動(dòng)sync相關(guān)依賴(lài)npm包,完成之后會(huì)出現(xiàn)以下界面。

#盲盒+碼##跟著小白一起學(xué)鴻蒙#如何編譯OpenHarmony自帶APP-開(kāi)源基礎(chǔ)軟件社區(qū)

然后即可以開(kāi)始build

#盲盒+碼##跟著小白一起學(xué)鴻蒙#如何編譯OpenHarmony自帶APP-開(kāi)源基礎(chǔ)軟件社區(qū)

一些報(bào)錯(cuò)處理

sdk依賴(lài)缺失:

ETS:ERROR File: D:/gitee/applications_app_samples-master/settings1118/settings/settings/product/phone/src/main/ets/model/wifiImpl/WifiModel.ts:386:20
Property 'removeDevice' does not exist on type 'typeof wifi'.

ETS:ERROR File: D:/gitee/applications_app_samples-master/settings1118/settings/settings/product/phone/src/main/ets/model/wifiImpl/WifiModel.ts:391:37
Property 'getDeviceConfigs' does not exist on type 'typeof wifi'.

ETS:ERROR File: D:/gitee/applications_app_samples-master/settings1118/settings/settings/product/phone/src/main/ets/model/wifiImpl/WifiModel.ts:395:24
Property 'connectToDevice' does not exist on type 'typeof wifi'.

ETS:ERROR File: D:/gitee/applications_app_samples-master/settings1118/settings/settings/product/phone/src/main/ets/model/wifiImpl/WifiModel.ts:439:41
Property 'getDeviceConfigs' does not exist on type 'typeof wifi'.

以上錯(cuò)誤即為sdk缺失導(dǎo)致,也就是import wifi from ‘@ohos.wifi’;這個(gè)d.ts文件里沒(méi)有和主干最新的接口和功能同步,這時(shí)候偷懶的法子就是在對(duì)應(yīng)的文件頭增加// @ts-nocheck,如下。如果是正規(guī)方式,則應(yīng)該找主干代碼里的對(duì)應(yīng)文件,拷貝到IDE的sdk目錄下。

// @ts-nocheck
import LogUtil from '../../../../../../../common/utils/src/main/ets/default/baseUtil/LogUtil';
import ConfigData from '../../../../../../../common/utils/src/main/ets/default/baseUtil/ConfigData';
import wifi from '@ohos.wifi';
import BaseModel from '../../../../../../../common/utils/src/main/ets/default/model/BaseModel';

按以上套路能編譯出來(lái),提示信息如下:

> hvigor Finished :phone:CompileResources... after 602 ms
> hvigor WARN: ETS:WARN File: D:\gitee\applications_app_samples-master\settings1118\settings\settings\product\phone\src\main\ets\pages\volumeControl.ets
It's not a recommended way to export struct with @Entry decorator, which may cause ACE Engine error in component preview mode.
COMPILE RESULT:SUCCESS { WARN:1}
> hvigor Finished :phone:CompileETS... after 33 s
> hvigor Finished :phone:CompileJS... after 988 μs
> hvigor Finished :phone:SyscapTransform... after 2 ms 210 μs
> hvigor Finished :phone:PackageHap... after 1 s 510 ms
> hvigor WARN: Will skip sign 'hap'. Invalid signingConfig is configured for 'default' product.
> hvigor Finished :phone:SignHap... after 3 ms 580 μs
> hvigor Finished :phone:assembleHap... after 73 μs
> hvigor BUILD SUCCESSFUL in 37 s

Process finished with exit code 0

hap包沒(méi)有簽名:

按以上套路編出來(lái)的,會(huì)發(fā)現(xiàn)沒(méi)有簽名的hap包。如圖:

#盲盒+碼##跟著小白一起學(xué)鴻蒙#如何編譯OpenHarmony自帶APP-開(kāi)源基礎(chǔ)軟件社區(qū)

這時(shí)候應(yīng)該走File -> Project Structure -> Signing Configs -> automatically generate signature,如果有選中需要取消選中然后再選中,然后apply,最后OK。

但是這時(shí)候其實(shí)還沒(méi)有顯示出來(lái),其實(shí)上面的報(bào)錯(cuò)也有顯示,即:

```bash
> hvigor WARN: Will skip sign 'hap'. Invalid signingConfig is configured for 'default' product.
```

這是因?yàn)槊黄ヅ洌枰薷腷uild-profile.json5文件的signingConfig:

```bash
"signingConfig": "release" 改成 "signingConfig": "default"
```

這樣應(yīng)該就能編譯出signed.hap這應(yīng)用程序包了

install的權(quán)限問(wèn)題:

如果在安裝的時(shí)候發(fā)現(xiàn)install的權(quán)限報(bào)錯(cuò),則是很有可能是權(quán)限配置問(wèn)題。OpenHarmony的應(yīng)用分一般應(yīng)用和系統(tǒng)應(yīng)用,系統(tǒng)自帶的applications大多是系統(tǒng)自帶應(yīng)用,所以配置IDE工具sdk里的UnsgnedReleasedProfileTemplate.json,具體位置在:sdk\toolchains\3.2.7.5(對(duì)應(yīng)下載和使用的sdk版本)\lib。在這個(gè)文件里,我們需要修改以下位置:

{
"version-name": "2.0.0",
"version-code": 2,
"app-distribution-type": "os_integration",
"uuid": "5027b99e-5f9e-465d-9508-a9e0134ffe18",
"validity": {
"not-before": 1594865258,
"not-after": 1689473258
},
"type": "release",
"bundle-info": {
"developer-id": "OpenHarmony",
"distribution-certificate": "-----BEGIN CERTIFICATE-----\nMIICFTCCAZmgAwIBAgIEH4/ajjAMBggqhkjOPQQDAwUAMGMCzAJBgNVBAYTAkNO\nMRQwEgYDVQQKEwtPcGVuSGFybW9ueTEZMBcGA1UECxMQT3Blbkhhcm1vbnkgVGVh\nbTEjMCEGA1UEAxMaT3Blbkhhcm1vbnkgQXBwbGljYXRpb24gQ0EwHhcNMjIxMjAy\nMDM0NjMzWhcNMzIxMTI5MDM0NjMzWjBKMRUwEwYDVQQDDAxpZGVfZGVtb19hcHAx\nDTALBgNVBAsTBFVuaXQxFTATBgNVBAoTDE9yZ2FuaXphdGlvbjELMAkGA1UEBhMC\nQ04wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQbPC8LX1YcpBZ5+cnrF6XuofHq\nH9b1ZUURQdNx5EoYLcRvhVgDbNoG7npMRhXO/WmCP6cH2u3RExbECzDoAaNo1Iw\nUDAdBgNVHQ4EFgQUSvsBUWNW6lvbdYMOuKqtniwqU4MwDgYDVR0PAQH/BAQDAgeA\nMB8GA1UdIwQYMBaAFNuGtyIW1QuhS7fdJXu58QV9oi1HMAwGCCqGSM49BAMDBQAD\naAAwZQIwYeO7qTU9TicVAd8gfYrvRJDspUlPjwU+k2BETJC4ZyaI5s3gpdDofsNs\nwd4PGVB9AjEAtUZpYZOsFMCoDwEQgRfSfIRVi8f7TJPUubRgrt89OZE9ml3e5ez6\nL5RlJ/m5o13Q\n-----END CERTIFICATE-----\n",
"bundle-name": "com.ohos.settings",
//需要修改的系統(tǒng)應(yīng)用權(quán)限
"apl": "system_core",
"app-feature": "hos_normal_app"
},
"acls": {
//需要增加的權(quán)限,根據(jù)hap的權(quán)限申請(qǐng)?jiān)O(shè)置
"allowed-acls": [
"ohos.permission.CAPTURE_SCREEN",
"ohos.permission.MANAGE_USER_IDM"
]
},
"permissions": {
"restricted-permissions": []
},
"issuer": "pki_internal"
}

這樣一般就可以安裝了。

Install的包名問(wèn)題:

我們OpenHarmony主干拷貝出來(lái)的application的包名一定會(huì)和板子上運(yùn)行的原程序同名的,這樣安裝時(shí)也會(huì)提示報(bào)錯(cuò),這種時(shí)候,我們需要修改"bundleName": “com.ohos.settings”, 以及sign文件里的對(duì)應(yīng)的名字。大概是兩個(gè)文件:

product\phone\build\default\intermediates\merge_profile\default\module.json。

"bundleName": "com.ohos.settings", //改成新名字如newsetting

build-profile.json5。

"signingConfigs": [
{
"name": "default",
"material": {
"certpath": "C:\\Users\\Administrator\\.ohos\\config\\openharmony\\auto_ohos_default_com.ohos.settings.cer", //使用上面新名字替換com.ohos.settings
"storePassword": "0000001BC6E86D64AD786A77BBF86702F23E6DD32E016E263D961DBCD4710340CD6EAC6B2A4A43A53DDFA0",
"keyAlias": "debugKey",
"keyPassword": "0000001B9CB15173695726ED3460368DEEC246A602353461BBD9321C77513130E462B2BEB9F39DB201E92A",
"profile": "C:\\Users\\Administrator\\.ohos\\config\\openharmony\\auto_ohos_default_com.ohos.settings.p7b",
"signAlg": "SHA256withECDSA",
"storeFile": "C:\\Users\\Administrator\\.ohos\\config\\openharmony\\auto_ohos_default_com.ohos.settings.p12"
}
}
]

小結(jié)

通過(guò)上述方式,我們就能編譯并安裝運(yùn)行OpenHarmony自帶的應(yīng)用并學(xué)習(xí)基礎(chǔ)能力的開(kāi)發(fā)了。

??想了解更多關(guān)于開(kāi)源的內(nèi)容,請(qǐng)?jiān)L問(wèn):??

??51CTO 開(kāi)源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??。

責(zé)任編輯:jianghua 來(lái)源: 51CTO開(kāi)源基礎(chǔ)軟件社區(qū)
相關(guān)推薦

2022-08-19 19:02:20

開(kāi)源鴻蒙操作系統(tǒng)

2023-01-03 15:09:10

鴻蒙常用工具

2022-11-24 14:34:41

Hap程序鴻蒙

2022-12-02 14:20:09

Tetris鴻蒙

2022-11-29 16:35:02

Tetris鴻蒙

2022-12-05 15:02:14

鴻蒙用戶(hù)鑒權(quán)

2022-11-22 15:15:46

Wi-Fi鴻蒙

2022-11-28 15:42:39

分布式軟總線(xiàn)鴻蒙

2023-03-30 09:32:27

2022-11-14 17:01:34

游戲開(kāi)發(fā)畫(huà)布功能

2023-03-30 09:19:54

SELinux安全子系統(tǒng)

2023-02-27 16:30:32

鴻蒙開(kāi)源協(xié)議分析

2023-04-04 09:24:11

鴻蒙HiDumper

2022-10-10 14:47:04

藍(lán)牙應(yīng)用鴻蒙

2022-08-29 17:25:19

鴻蒙應(yīng)用開(kāi)發(fā)

2022-10-09 15:05:50

NAPI框架鴻蒙

2022-10-20 16:40:16

JS應(yīng)用控制LED鴻蒙

2023-03-15 16:19:03

BinderIPC工具

2022-11-03 15:47:04

HTTP通信協(xié)議

2022-11-08 15:43:45

開(kāi)源鴻蒙藍(lán)牙協(xié)議棧
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产欧美日韩综合精品一区二区 | 深夜福利影院 | 精品欧美乱码久久久久久 | 久久国产精品一区 | 国产极品车模吞精高潮呻吟 | 国产一级片在线观看视频 | 国产精品激情 | 99精品网 | 国产精品免费视频一区 | 欧美激情在线一区二区三区 | 亚洲综合日韩精品欧美综合区 | 欧美久久一区 | 日韩有码一区 | 午夜电影网 | 日本在线视频一区二区 | 一级h片| av午夜激情 | 黄色日批视频 | 成人福利视频网站 | 日韩亚洲欧美综合 | 成人一区二区三区 | 日韩另类视频 | 性色的免费视频 | 国产91视频一区二区 | 一区二区三区日韩精品 | av一级久久 | 一区二区三区在线免费观看视频 | 国产日韩欧美精品一区二区三区 | 99成人 | 国产色在线 | 国产精品特级毛片一区二区三区 | www.99re | 国产精品伦一区二区三级视频 | 激情国产 | 91美女在线| 97国产在线视频 | 欧美一区二区激情三区 | 久久99国产精品 | 久久69精品久久久久久久电影好 | 国产一区二区三区视频免费观看 | 国产情侣啪啪 |