当使用Android库时,如果多个项目(main或libraries)定义了相同的资源,则使用高优先级项目的副本并替换前一个。
在编写可重用库时,这是一个问题,因为它迫使您为每个资源名称加上前缀以避免冲突。有关该主题的更多信息,请参阅Android Parcel Project。
现在我想做的是一个脚本,在编译之前,在所有库中的每个资源的名称前面加上它们的包名。为此,我打算使用生成的ant构建脚本,并向其添加一个自定义步骤。
你知道这可能吗?你有更好的解决方案来解决这个问题吗?
你知道这可能吗?
如果你有库的源代码,我想你可以这样做。我怀疑,任何动态引用资源id的地方(反射、getIdentifier()
等)都必须手动调整。而且,由于您修改了库作者的代码,您可能无法从他们那里获得帮助。
我也会努力说服库作者在他们的库的未来版本中添加资源前缀。