(1). 在Android library中使用switch-case语句访问资源ID的原因分析及解决方案:
在Android依赖库中使用switch-case语句访问资源ID时会报如下图所示的错误,报的错误是case分支后面跟的参数必须是常数,换句话说出现这个问题的原因是Android library中生成的R.java中的资源ID不是常数
(2). 在Library工程时的引用R.id问题:
A为普通Android工程,B为is Library的工程,且B中有使用R.id;当A工程引用了B工程时会在A工程的gen目录中生成B的R文件,里面也包含了A的R文件中的内容,
但是当B的id定义在layout文件中时,需要注意layout的名称,如果A下有个main.xml的layout,B下也有个main.xml的layout,那么A编译时就会将B的main.xml中的所有id忽略,导致混淆报错提示找不到id;
所有问题出在,被引用的项目和当前项目之间的资源冲突。假如当前项目存在与被引用项目相同的资源(除了layout外
,还包括图片,styles等等)就会默认使用当前项目的资源,完全忽略被引用项目的资源。