2011-02-08 83 views
1


我想将应用程序分隔成一个应用程序项目和一个库项目(除了将它从Netbeans移动到Eclipse之外)。该应用程序将包含库使用的资源 - 为此,我已经阅读了Stackoverflow,我们可以将资源捆绑在库项目中,然后在应用程序项目中重写它们。Android重新定义资源

但我这样做的时候,我得到了错误:
... \水库\值\ attrs.xml:5:错误:属性“pageBackground”已被定义

我做什么这里错了吗?我的任何假设都是错误的?

感谢, Rajath

+0

您是否创建了一个android库项目,并通过eclipse中的属性将其添加到应用程序项目中,如果您这样做,库资源将被应用程序资源覆盖。 – 2011-02-08 09:49:11

+0

是的,我在Properties-> Android-> Library和'Add'中添加了库...是否正确,还是应该将它添加到属性中的'Java Build Path'下? – rajath 2011-02-08 09:54:34

回答

2

我觉得我有类似的问题,当我试图创造一种其放置在应用程序的资源“配置文件”,并且是为了改变它使用的库的行为。

final int resId = getResources().getIdentifier("my_resource", "raw", getPackageName()); 

然后可以使用标识符作为正常的资源ID,例如:

if (resId > 0) { 
    final InputStream is = getResources().openRawResource(resId); 
    // ... 
} 

当时的想法是处理我发现工作使用getIdentifier方法从Resources,而不是直接指的R类是这两种情况:当文件存在于应用程序的资源中或当它不存在时。但我认为它也应该适用于您在应用程序中“覆盖”库中的资源的情况,这要归功于getPackageName为资源“标识符”解析提供了适当的软件包名称。