我对Android开发很新(但不是对Java),我遵循了示例练习NotepadV1,但在虚拟设备上执行时出现了奇怪的错误(Hello World在同一虚拟设备上运行良好):
运行程序时出现“资源未找到”异常。所使用的ID是正确的(Eclipse将其显示为自动完成建议,并且在R.java中定义良好)。 如果我直接使用字符串而不是资源ID,则一切都正常。
以下是我的string.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string
name="app_name">Notepad v1</string>
<string
name="no_notes">No Notes Yet</string>
<string
name="menu_insert">Add Item</string>
</resources>
这里是抛出异常的函数:
@Override
public boolean onCreateOptionsMenu( Menu menu )
{
boolean result = super.onCreateOptionsMenu( menu );
// menu.add( 0, INSERT_ID, 0, R.string.menu_insert ); // exception !
menu.add( 0, INSERT_ID, 0, "Add Item" ); // ok like this
return result;
}
被注释掉的那一行是引发异常的代码。如您所见,直接传递字符串而不是资源ID时,它可以通过。
我已经尝试在程序的其他位置加载此资源,并且无论在哪里都会引发异常。程序中其他地方使用的其他资源没有问题。
有人有什么想法吗?我错过了什么吗?
非常感谢您的建议。