launcher圖標被替換成其他圖標

launcher圖標突然被初始化成其他圖標怎麼辦?

本來好好的,添加一個arr包之後,launcher圖標突然其他圖標被取代了。

囉嗦兩個知識點(做個筆記)
什麼是AAR包? AAR包相比於jar包,區別在哪兒?
aar包含所有資源,class,xml佈局文件以及res資源文件全部包含。
jar只包含了class文件與清單文件,不包含資源文件,如圖片等所有res中的文件。
捎帶解釋一下so庫


android系統目前支持以下七種不同的CPU架構:ARMv5,ARMv7 (從2010年起),x86 (從2011年起),MIPS (從2012年起),ARMv8,MIPS64和x86_64 (從2014年起),每一種都關聯着一個相應的ABI。

應用程序二進制接口ABI(Application Binary Interface)定義了二進制文件(尤其是.so文件)如何運行在相應的系統平臺上,從使用的指令集,內存對齊到可用的系統函數庫。

在Android Studio構建APP時可以選擇構建時匹配的CPU架構。在project的build.gradle可以明確指定,代碼如下
在buildType標籤下聲明

ndk{

abiFilters "armeabi","armeabi-v7a","x86"

}

以上代碼可以指定在構建時,生成支持這三類(“armeabi”,“armeabi-v7a”,“x86”)CPU的so庫。

so庫的load:

1:相對路徑load: System.loadLibrary(“media_jni”); 其中media_jni名字會被自動替換成libmedia_jni.so

在使用相對路徑load時,需要注意相應的so庫是否被打入到 aar包的libs目錄下。此處需要注意ABI類型

2: 絕對路徑load:System.load("/絕對路徑/libmedia_jni.so");

絕對路徑可以避免這個問題,但是要確保具有相應路徑的訪問權限,在接入AAR時候,假設合作方是廠商ROM級別的,部分路徑需要提前協調。


回到之前的問題:
圖標被替換主要是因爲arr包裏面也有相同文件名的圖標。
在這裏插入圖片描述
解決辦法是在AndroidManifest.xml的application標籤中添加tools:replace=“android:icon”

來看一下錯誤日誌:

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章