迁移旧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文件里定义了,比如:
后来我清了缓存或者执行了Clean操作,“找不到R”的错误就神奇地消失了。<?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>
现在卡在了新问题上:所有case语句都报**“constant expression required”**(需要常量表达式)的错误,但这些ID明明都是在菜单XML里定义的常量啊。我对Android Studio开发的了解比较有限,之前在旧电脑和旧版Studio上完全能正常构建运行,实在摸不着头脑,有没有大佬能给点解决建议?
备注:内容来源于stack exchange,提问作者nmw01223
相关产品推荐
相关产品推荐

