android case expressions must be constant expressions

1. 当新建Android Library Project 工程或将已有工程转化为Android Library Project, 如果工程源代码中有如下语句:

int id = view.getId();
          switch (id) {
               case R.id.button1:
               action1();
               break;
               case R.id.button2:
               action2();
               break;
               case R.id.button3:
               action3();
               break;
         }

会提示case expressions must be constant expressions 错误,原因是ADT14后Android库工程中R.class中的资源常量不在为final类型,原因

见http://tools.android.com/tips/non-constant-fields 官方解释。所以例子上面的R.id.button1不再问常量,就不能用在switch结构中,简单的解决

方法是将switch 转化成if-else语句,这在eclipse中非常容易实现,将光标置于switch关键字上,按ctrl+1,按下图进行装换

2.  如果Android Library Project中有Activity,可以不必再库工程的清单文件中声明,但一定要在使用该库的工程中进行声明,因为manifest 配置文件是独立给工程的,不能复用。

3. 如果Android Library Project中用到第三方jar包,也要讲其导入使用该库的工程中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值