避免在android中使用非常量表达式

时间:2011-12-20 17:58:41

标签: java android adt

自ADT 14以来有一个新东西,它被称为非常量表达式:迁移是必要的。 导致我无法做到这样的事情:

TextView tv = (TextView) findViewById(R.id.text);

或者这个:

getRessources().getDrawable(R.drawable.icon);

我现在需要做些什么才能让它发挥作用?

2 个答案:

答案 0 :(得分:3)

您必须重构代码,因为在库项目中,R字段不再是常量(不是final)。有关如何解决问题的详细信息和示例,请参阅http://tools.android.com/tips/non-constant-fields

基本上,您需要将switch语句更改为if-else,因为您无法切换非常数。

此外,这仅适用于图书馆项目。常规的android项目不需要这种更改。

进行更改后,请务必清理并刷新项目,因为某些错误/警告可能会延迟。

答案 1 :(得分:1)

在Eclipse中 点击项目 - >属性 - >的Android

并取消选中是否为真"是图书馆"选项。