bill最近完成了一个普通的android工程,但之后想对其进行重构以在其他android工程中使用。于是将该工程转换为android library库工程。于是麻烦来了,编译报错,库中 R.id.xxx 不能作为 case 分支的表达式。

   费了半天力,结果是因为 ADT r14 之后,android工程转换为android library时,ADT自动生成的R文件中的id字段不再以 final static int 修饰,而仅仅是一个 static int,因此也难怪 case 语句发牢骚。

   解决办法也很简单,将所有switch(id) ... case R.id.xxx: 的语句替换为等价的 if...else... 语句即可。