自 ADT 14 以来有一个新事物,它称为非常量表达式:迁移必要。 这导致我不能做这样的事情:
TextView tv = (TextView) findViewById(R.id.text);
或者这个:
getRessources().getDrawable(R.drawable.icon);
我现在必须做什么才能让它发挥作用?
最佳答案
您必须重构您的代码,因为在库项目中,R 字段不再是常量(不是 final
)。参见 http://tools.android.com/tips/non-constant-fields有关如何解决问题的详细信息和示例。
基本上,您需要将 switch
语句更改为 if-else
,因为您无法切换非常量。
此外,这仅适用于图书馆项目。常规 android 项目不需要此更改。
在您进行更改后,请务必清理并刷新您的项目,因为一些错误/警告可能会持续存在。
关于java - 避免在android中使用非常量表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8579815/