Android模块化开发遇到的问题: 资源名冲突的问题

  • 方法一:
    保护某些 resources 不被外部访问,可以创建res/values/public.xml,因为 public 是关键词,所以需要用 new file 的方式创建。至少添加一行,未添加的视为 private。(经验证,好像没有效果,知道的大神帮忙留言,最好是code,谢谢)

  • <resources>
        <public name="mylib_app_name" type="string"/>
    </resources>
    
  • 方法二:
    在 library 的 build.gradle 中添加 resourcePrefix , 则所有的资源须以此 prefix 开头,否则报错。注意,图片资源虽然不提示报错误,但是也需要修改名字。(这种方式,说白了就是用resourcePrefix来约束你资源文件的命名,因为你如果命名不加这个前缀,xml会报错,当然你可以添加一行忽略代码,但是那样又和我们加前缀的初衷背道而驰了,所以还是乖乖的加前缀吧;xml文件名称要改,xml文件中name也要改;记住,是res文件夹下面的所有你自定义的name;除了values文件夹中的xml文件名称不需要更改外,其它的资源文件xml名称前也要加前缀;)

    android {
        ...
        buildTypes {
        ...
        }
        resourcePrefix 'my_prefix_'
    }
    还有个注意事项:
  • 我们知道主工程中,不同的xml中可以将控件命名为相同的id,因为是唯一的final
  •  public static final int seekbar=0x7f0b006e;
  • 但是在module中,如果ID相同,会不起作用,因为不是final,所以在module中的不同xml中的ID命名还是保持唯一比较好
  •  public static int seekBarStyle = 0x7f0100ba;

猜你喜欢

转载自blog.csdn.net/mawei7510/article/details/81976273
今日推荐