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”

来看一下错误日志:

在这里插入图片描述

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