You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

迁移旧Android Java项目至新版Android Studio后,菜单case语句报“constant expression required”错误求助

迁移旧Android Java项目至新版Android Studio后,菜单case语句报“constant expression required”错误求助

我有一个老的Java Android项目,好几年前用旧版Android Studio(3.1.2)创建的——其实最开始可能是在Eclipse里开发的。这个项目之前完全能正常运行,代码也没任何问题。

后来因为要换台新电脑,各种原因没法在新电脑上安装并正常运行3.1.2版本的Android Studio,而且毕竟版本太老了,就装了最新的2024.2.2 Patch 1版本。把项目文件夹复制过去后,尝试打开并构建,结果遇到了一堆问题:

  • 首先是Gradle版本不兼容,按照提示更新了Gradle版本;
  • 接着提示没有定义namespace,就在build.gradle里添加了如下配置:
    ...
    android {
        namespace "my.name.space"
    ...
    
  • 之后在一个包含菜单条目switch-case的Activity里,所有像case R.id.mymenuitem:这样的语句都报“找不到R”的错误,不过这些菜单ID明明都在menu的XML文件里定义了,比如:
    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android" >    
        ...
        <item android:id="@+id/mymenuitem"
            android:title="my menu item text" />
        ...
    </menu>
    
    后来我清了缓存或者执行了Clean操作,“找不到R”的错误就神奇地消失了。

现在卡在了新问题上:所有case语句都报**“constant expression required”**(需要常量表达式)的错误,但这些ID明明都是在菜单XML里定义的常量啊。我对Android Studio开发的了解比较有限,之前在旧电脑和旧版Studio上完全能正常构建运行,实在摸不着头脑,有没有大佬能给点解决建议?

备注:内容来源于stack exchange,提问作者nmw01223

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 10:24:34