Intellij Idea IntelliJ/Android ->“java:constant expression required”on case R.id.viewId

wb1gzix0  于 7个月前  发布在  Android
关注(0)|答案(2)|浏览(127)

当我试图在IntelliJ中构建我的Android项目时,我在每个switch语句上都得到了错误,这些语句使用了R.java中的ID。
范例:

switch (item.getItemId()) {

  case android.R.id.home:
    NavUtils.navigateUpTo(this, DashboardActivity.upIntent(this));
    return true;

  case R.id.orders_options_add:
    handleAddItem();
    return true;

  case R.id.orders_options_reorder:
    handleReorder();
    finish();
    return true;
}

字符串
有人知道如何解决这个问题吗?

tpxzln5u

tpxzln5u1#

自ADT版本14以来,资源id在库项目中不是常量,因此不能在switch语句中使用它们。只需使用if () {} else if () {} ...
您可以找到更多详细信息here

m528fe3b

m528fe3b2#

在gradle.properties中添加这两行代码

android.nonTransitiveRClass=true
 android.nonFinalResIds=false

字符串

相关问题