自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區(qū)??

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

概述

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

使用DevEco導入編譯

導入代碼

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

自動下載npm包

導入應用后,IDE工具就會自動sync相關依賴npm包,完成之后會出現(xiàn)以下界面。

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

然后即可以開始build

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

一些報錯處理

sdk依賴缺失:

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'.

以上錯誤即為sdk缺失導致,也就是import wifi from ‘@ohos.wifi’;這個d.ts文件里沒有和主干最新的接口和功能同步,這時候偷懶的法子就是在對應的文件頭增加// @ts-nocheck,如下。如果是正規(guī)方式,則應該找主干代碼里的對應文件,拷貝到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';

按以上套路能編譯出來,提示信息如下:

> 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包沒有簽名:

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

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

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

但是這時候其實還沒有顯示出來,其實上面的報錯也有顯示,即:

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

這是因為命名不匹配,需要修改build-profile.json5文件的signingConfig:

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

這樣應該就能編譯出signed.hap這應用程序包了

install的權限問題:

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

{
"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)應用權限
"apl": "system_core",
"app-feature": "hos_normal_app"
},
"acls": {
//需要增加的權限,根據(jù)hap的權限申請設置
"allowed-acls": [
"ohos.permission.CAPTURE_SCREEN",
"ohos.permission.MANAGE_USER_IDM"
]
},
"permissions": {
"restricted-permissions": []
},
"issuer": "pki_internal"
}

這樣一般就可以安裝了。

Install的包名問題:

我們OpenHarmony主干拷貝出來的application的包名一定會和板子上運行的原程序同名的,這樣安裝時也會提示報錯,這種時候,我們需要修改"bundleName": “com.ohos.settings”, 以及sign文件里的對應的名字。大概是兩個文件:

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"
}
}
]

小結

通過上述方式,我們就能編譯并安裝運行OpenHarmony自帶的應用并學習基礎能力的開發(fā)了。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區(qū)??

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

責任編輯:jianghua 來源: 51CTO開源基礎軟件社區(qū)
相關推薦

2022-08-19 19:02:20

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

2023-01-03 15:09:10

鴻蒙常用工具

2022-11-24 14:34:41

Hap程序鴻蒙

2022-11-29 16:35:02

Tetris鴻蒙

2022-12-02 14:20:09

Tetris鴻蒙

2022-11-14 17:01:34

游戲開發(fā)畫布功能

2023-03-30 09:32:27

2022-11-28 15:42:39

分布式軟總線鴻蒙

2022-12-05 15:02:14

鴻蒙用戶鑒權

2022-11-22 15:15:46

Wi-Fi鴻蒙

2023-02-27 16:30:32

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

2023-03-30 09:19:54

SELinux安全子系統(tǒng)

2023-04-04 09:24:11

鴻蒙HiDumper

2022-10-10 14:47:04

藍牙應用鴻蒙

2022-08-29 17:25:19

鴻蒙應用開發(fā)

2022-10-20 16:40:16

JS應用控制LED鴻蒙

2022-10-09 15:05:50

NAPI框架鴻蒙

2023-03-15 16:19:03

BinderIPC工具

2022-11-03 15:47:04

HTTP通信協(xié)議

2022-10-31 15:35:02

Wi-Fi藍牙子系統(tǒng)
點贊
收藏

51CTO技術棧公眾號