最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

學(xué)員答疑:android12/13 framework課程預(yù)制apk和bootanimation部分

2023-10-13 10:47 作者:千里馬學(xué)框架  | 我要投稿

粉絲朋友在學(xué)習(xí)我的課程內(nèi)置應(yīng)用時(shí)候,和bootanimation時(shí)候,發(fā)現(xiàn)如果在Android 12/13 上預(yù)制apk時(shí)候發(fā)現(xiàn)有編譯不過情況,報(bào)artifact_path_requirements相關(guān)錯(cuò)誤 具體錯(cuò)誤顯示如下:

build/make/core/artifact_path_requirements.mk:26:?warning:??build/make/target/product/sdk_phone_x86_64.mk?produces?files?inside?build/make/target/product/generic_system.mks?artifact?path?requirement.?
Offending?entries:
system/app/MyApp/MyApp.apk
In?file?included?from?build/make/core/main.mk:1383:
build/make/core/artifact_path_requirements.mk:26:?error:?Build?failed.
00:42:13?ckati?failed?with:?exit?status?1

這里乍一看估計(jì)99%的人都不知道怎么回事,這里其實(shí)可以從提示是可以看出來: 大概是因?yàn)樾掳姹綼rtifact_path_requirements有對預(yù)裝相關(guān)東西進(jìn)行了規(guī)則檢測,發(fā)現(xiàn)system/app/MyApp/MyApp.apk這種預(yù)制到system/app的情況屬于違規(guī)了。 那么具體怎么解決呢?

方法一

通過在github尋找到了一些第三方rom維護(hù)者也有遇到類似問題,參考他們解決方案,自己這邊再消化后,我的修改如下:

diff?--git?a/envsetup.sh?b/envsetup.sh
index?16873095aa..8c4a8c62e6?100644
---?a/envsetup.sh
+++?b/envsetup.sh
@@?-211,7?+211,7?@@?function?setpaths()
?????local?targetgccversion=$(get_build_var?TARGET_GCC_VERSION)
?????local?targetgccversion2=$(get_build_var?2ND_TARGET_GCC_VERSION)
?????export?TARGET_GCC_VERSION=$targetgccversion
-
+????export?DISABLE_ARTIFACT_PATH_REQUIREMENTS="true"
?????#?The?gcc?toolchain?does?not?exists?for?windows/cygwin.?In?this?case,?do?not?reference?it.
?????export?ANDROID_TOOLCHAIN=
?????export?ANDROID_TOOLCHAIN_2ND_ARCH=

即build/envsetup.sh 加上export DISABLE_ARTIFACT_PATH_REQUIREMENTS="true"就可以順利編譯通過不再報(bào)artifact_path_requirements錯(cuò)誤,這里其實(shí)就相當(dāng)于把新版本編譯系統(tǒng)中artifact_path_requirements檢測關(guān)閉就可以

附一下成功圖片:

在這里插入圖片描述

成功apk路徑:

在這里插入圖片描述

方法二:

上面修改方式相對有點(diǎn)暴力,沒有細(xì)粒度的細(xì)分,而是一股氣把所有的開放了,也有一種細(xì)粒度的方法如下:

diff?--git?a/target/product/telephony_product.mk?b/target/product/telephony_product.mk
index?18374d4b23..7e88206193?100644
---?a/target/product/telephony_product.mk
+++?b/target/product/telephony_product.mk
@@?-20,4?+20,10?@@
?#?/product?packages
?PRODUCT_PACKAGES?+=?\
?????Dialer?\
+????MyApp?\
?????ImsServiceEntitlement?\
+
+
+PRODUCT_ARTIFACT_PATH_REQUIREMENT_ALLOWED_LIST?+=\
+???????system/app/MyApp/MyApp.apk?\

里面最重要的一個(gè)就是

PRODUCT_ARTIFACT_PATH_REQUIREMENT_ALLOWED_LIST?+=\
???????system/app/MyApp/MyApp.apk?\

在這個(gè)PRODUCT_ARTIFACT_PATH_REQUIREMENT_ALLOWED_LIST加上相關(guān)的白名單既可以

bootanimation預(yù)制新方法:

原來8.1使用的Android.mk中進(jìn)行shell直接拷貝到system/media路徑下已經(jīng)不生效

1、bootanimation下面已經(jīng)沒有了相關(guān)的Android.mk了

2、哪怕找到可以執(zhí)行的Android.mk,編譯也會(huì)提示沒有media路徑不存在

這里也針對新版本的預(yù)制bootanimation.zip進(jìn)行講解

修改patch如下

test@test:~/aosp/build/make$?git?status
HEAD?detached?at?d0d363fbc2
Changes?not?staged?for?commit:
??(use?"git?add?<file>..."?to?update?what?will?be?committed)
??(use?"git?restore?<file>..."?to?discard?changes?in?working?directory)
????modified:???envsetup.sh
????modified:???target/product/handheld_system_ext.mk
????modified:???target/product/telephony_product.mk

no?changes?added?to?commit?(use?"git?add"?and/or?"git?commit?-a")
test@test:~/aosp/build/make$?git?diff?
diff?--git?a/envsetup.sh?b/envsetup.sh
index?be6061d67d..069a9d7d22?100644
---?a/envsetup.sh
+++?b/envsetup.sh
@@?-211,7?+211,7?@@?function?setpaths()
?????local?targetgccversion=
$(get_build_var?TARGET_GCC_VERSION)
?????local?targetgccversion2=$(get_build_var?2ND_TARGET_GCC_VERSION)
?????export?TARGET_GCC_VERSION=$targetgccversion
-
+????export?DISABLE_ARTIFACT_PATH_REQUIREMENTS="true"//這里上面有介紹
?????#?The?gcc?toolchain?does?not?exists?for?windows/cygwin.?In?this?case,?do?not?reference?it.
?????export?ANDROID_TOOLCHAIN=
?????export?ANDROID_TOOLCHAIN_2ND_ARCH=
diff?--git?a/target/product/handheld_system_ext.mk?b/target/product/handheld_system_ext.mk
index?d935fbfddf..9c19ab14cd?100644
---?a/target/product/handheld_system_ext.mk
+++?b/target/product/handheld_system_ext.mk
@@?-19,6?+19,8?@@
?#?it?definitely?doesn't?belong?on?other?types?of?devices?(if?it
?#?does,?use?base_system_ext.mk).
?$(call?inherit-product,?$(SRC_TARGET_DIR)/product/media_system_ext.mk)
+PRODUCT_COPY_FILES?+=?\
+????packages/services/Car/car_product/car_ui_portrait/bootanimation/bootanimation.zip:system/media/bootanimation.zip

這里核心就是如下這句

PRODUCT_COPY_FILES?+=?\
???packages/services/Car/car_product/car_ui_portrait/bootanimation/bootanimation.zip:system/media/bootanimation.zip

采用這個(gè)PRODUCT_COPY_FILES宏,這個(gè)方式相對比較標(biāo)準(zhǔn)

更多干貨framework課程列表

https://blog.csdn.net/learnframework/article/details/132739059 需要更多資料可以+v(androidframework007)也可以下面公眾號(hào)

在這里插入圖片描述


學(xué)員答疑:android12/13 framework課程預(yù)制apk和bootanimation部分的評論 (共 條)

分享到微博請遵守國家法律
广水市| 遂溪县| 昌邑市| 蛟河市| 武山县| 乌兰县| 静乐县| 宣化县| 馆陶县| 大港区| 岳普湖县| 周至县| 沐川县| 凤山县| 新干县| 浮梁县| 铁力市| 乌鲁木齐县| 长岭县| 汉沽区| 东台市| 贵德县| 平南县| 明水县| 南昌市| 靖州| 建平县| 黄大仙区| 义马市| 乌兰浩特市| 黄冈市| 邹城市| 呼玛县| 景宁| 广州市| 南汇区| 阳原县| 桑日县| 奉新县| 玉环县| 泽普县|