2011-04-18 81 views
0

我有一个关于从android库继承资源的问题。从android库继承资源

假设你有一个Android库项目,并在该库你把一些资源(比方说在目前的字符串)的包名com.libexample现在

下的包名com。示例下一个Android项目,我参考了之前创建的图书馆。

如果我想使用的库的字符串中的一个,我可以用

getString(com.libexample.R.string.test_string); 

我的问题是得到它,有没有可能在我的主要项目中的字符串资源获得分配相同的整ID作为我的库中的字符串?因为如果是的话,上面的代码语句将实际上等于:

getString(R.string.new_string); 

假设new_string追索被分配了相同的ID test_string资源。

+0

我认为它可以匹配id,除非两种可能性中的一种成立:1. Android编译器足够聪明,可以搜索每个库中每一个名为'R'的类,并检查每个类的id已经被使用了(我认为不太可能)。 2.'R'中的id不完全是随机的,并且包含来自其编译单元的足够信息,使得'com.libexample.R'中的id有效地保证不与'com.someotherthing.R'中的id相一致(更可能) 。 – aroth 2011-04-18 10:45:02

回答

0

显然,编译器会自动在同一个生成的R.java文件下添加资源,以防止发生任何冲突。