Android 为什么.aar库可以有res/,;和安卓系统中的主res不冲突?

Android 为什么.aar库可以有res/,;和安卓系统中的主res不冲突?,android,jar,aar,Android,Jar,Aar,我们都知道:在android中,.jar文件不能包含资源,因为资源的id可能会与项目的资源id冲突 但是在.aar文件中,res/包含在内,并且与项目的id不冲突 为什么。aar可以有res.但jar不能?为什么aar文件可以解决id冲突?据我所知 不会有冲突,因为相同的ID将被bruteforce覆盖。因此,如果知道使用依赖项的资源的字符串id,可以通过声明相同的字符串id来更改它 Aar是一个新的构建系统,它还可以包含用于更广泛支持图书馆的资源。这就是为什么它可以拥有资源的原因谢谢你的回答!

我们都知道:在android中,.jar文件不能包含资源,因为资源的id可能会与项目的资源id冲突

但是在.aar文件中,res/包含在内,并且与项目的id不冲突

为什么。aar可以有res.但jar不能?为什么aar文件可以解决id冲突?

据我所知

不会有冲突,因为相同的ID将被bruteforce覆盖。因此,如果知道使用依赖项的资源的字符串id,可以通过声明相同的字符串id来更改它


Aar是一个新的构建系统,它还可以包含用于更广泛支持图书馆的资源。这就是为什么它可以拥有资源的原因谢谢你的回答!对不起,“冲突”,“找不到”可能更好。假设我们有一个包含布局的项目。当我们从项目中生成.jar文件时,在类文件中,布局id将被编译为静态的,并且不能更改数字,例如0x7fxxxxx。使用这个jar文件,将布局复制到另一个项目,编译它,我们可能会得到id not found错误。因此,当生成.aar文件时,类文件中的id不会是静态的??假设我们有一个项目的aar文件。(您可以尝试通过将其扩展名更改为.zip来打开它)它有classes.jar和资源文件。如果我们只复制类文件,它不应该自己编译。但我不确定我们是否将资源复制到我们的项目中。我们应该试一试:d