2011-12-20 68 views
2

我是新来的Android开发利用的PhoneGap,我试图通过从http://developer.android.com/guide/topics/ui/menus.html教程建立一个选项菜单,但它总是给错误信息象下面这样:选项菜单上的Android开发

[2011-12-20 16:45:28 - HelloPhoneGap] W/ResourceType(23444): Bad XML block: header size >84 or total size 0 is larger than data size 0 [2011-12-20 16:45:28 - HelloPhoneGap] C:..\workspace\HelloPhoneGap\res\menu\menu.xml:3: >error: Error: No resource found that matches the given name (at 'title' with value >'@string/new_game'). [2011-12-20 16:45:28 - HelloPhoneGap] C:..\workspace\HelloPhoneGap\res\menu\menu.xml:5: >error: Error: No resource found that matches the given name (at 'title' with value >'@string/help').

这里是控制台代码:

package com.phonegap.helloworld; 

import android.os.Bundle; 
import com.phonegap.*; 

public class App extends DroidGap { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    super.loadUrl("file:///android_asset/www/jqm/index.htm"); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.game_menu, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle item selection 
    switch (item.getItemId()) { 
    case R.id.new_game: 
     newGame(); 
     return true; 
    case R.id.help: 
     showHelp(); 
     return true; 
    default: 
     return super.onOptionsItemSelected(item); 
    } 
} 

@Override 
public boolean onKeyDown(int keyCode,KeyEvent event){ 
     if (keyCode == KeyEvent.KEYCODE_MENU) { 
      return false; 
     }else{ 
      return super.onKeyDown(keyCode, event); 
     } 

} 

} 

menu.xml文件

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/new_game" 
     android:title="@string/new_game" /> 
    <item android:id="@+id/help" 
     android:title="@string/help" /> 
</menu> 

有没有人牛逼什么导致错误?

非常感谢!


在string.xml定义串后,错误走了,但我已经满足像下面

KeyEvent cannot be resolved to a type App.java /HelloPhoneGap/src/com/phonegap/helloworld line 39 Java Problem 
KeyEvent cannot be resolved to a variable App.java /HelloPhoneGap/src/com/phonegap/helloworld line 40 Java Problem 
Menu cannot be resolved to a type App.java /HelloPhoneGap/src/com/phonegap/helloworld line 17 Java Problem 
MenuInflater cannot be resolved to a type App.java /HelloPhoneGap/src/com/phonegap/helloworld line 18 Java Problem 
MenuItem cannot be resolved to a type App.java /HelloPhoneGap/src/com/phonegap/helloworld line 24 Java Problem 

回答

1

必须在值已经定义字符串new_game

<resources> 
<string name="new_game">Your String</string> 
<string name="help">Your String</string> 
</resources> 

参考this

你可以 - 如果你使用eclipse然后右键单击该项目并选择其他,有创造价值的xml文件选择android xml文件,然后给出窗口选择资源类型的值,

+0

谢谢,错误消失了,但新的错误信息出来了,请参考我编辑过的帖子 – conmen 2011-12-20 09:57:22

+0

看来你已经忘记添加导入这个.... import android.view.KeyEvent; – sampathpremarathna 2011-12-21 03:41:08

1

好像你的新错误缺少你/res/values/strings.xml 应该有你喜欢的文本字符串标签:

<string name="help">Help</string> 
<string name="new_game">New game</string> 
+0

谢谢,错误消失了,但新的错误信息出来了,请参考我编辑过的帖子 – conmen 2011-12-20 09:57:08

0

看起来你没有或者有串new_gamestrings.xml文件中的一些错误和help