我正在做一个Android项目(使用Android Studio, Gradle),我把一些逻辑和小部件分成了子库项目。
我发现R.string.xxx
或其他R
引用被合并,但我无法获得我的库的资源值,如果它具有与应用程序模块相同的名称。(我使用[libpacakgename].R.string.appname
,但资源仍然是应用程序模块的,而不是库的。)
是否有一种方法可以使用像Android资源一样的资源:android.R.string.xxx
,或者像myapp:string/xxx
这样的xml,其中"myapp"成为我的自定义命名空间或类名。
顺便说一下,我还发现有时attr id
会发生冲突,导致编译失败。
这可以通过修改gradle内部任务来实现,但这不是预期的场景。
一个简单的解决方案是在库资源标识符前面加上(包-)名称。