Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android库项目中的资源ID_Android_Open Source_Shared Libraries - Fatal编程技术网

Android库项目中的资源ID

Android库项目中的资源ID,android,open-source,shared-libraries,Android,Open Source,Shared Libraries,我想在我的项目中加入一个开源项目。但是在选中“is library”选项后,诸如“case R.id.menu\u search:”之类的东西就无法编译了。我应该用它的contant值替换它们吗,或者如何包含它 case R.id.menu_search: // ! case expressions must be constant expressions onSearchRequested(); return true; ... 正如其他人指出的,您需

我想在我的项目中加入一个开源项目。但是在选中“is library”选项后,诸如“case R.id.menu\u search:”之类的东西就无法编译了。我应该用它的contant值替换它们吗,或者如何包含它

    case R.id.menu_search: // ! case expressions must be constant expressions
        onSearchRequested();
        return true; ...

正如其他人指出的,您需要将
switch()
语句更改为
if()
/
else if()
/
else
语句
R.id.menu\u search
不是常量(
static final
),不能用于
案例
语句。这是因为
R.id.menu\u search
来自您的Android库项目
android.R.id.home
是一个常量,因为它是操作系统的一部分,不会改变。

将case更改为if…else语句。在eclipse中,当光标位于case关键字上时,按ctrl+1可以实现这一点?但是所有的R.id菜单。。。选中“is library”选项后无法识别。case android.R.id.home可以正确识别。为什么模块中的id不是静态最终的,但当你的应用程序代码中有它们时,所有的R.java id都是最终的…@Boy:我记不清原因了——对不起@当多个库项目合并时,字段的实际值(必须是唯一的)可能会发生冲突。看见