2014-01-20 11 views
7

logcat에 지정된대로 앱을 시작할 때 (public boolean onCreateOptionsMenu (메뉴 메뉴)) 코드가 실패합니다. 누구든지 지적 할 수있다 왜 그렇게 ??? 로그 캣예기치 않은 문서 끝 (android.view.MenuInflater.parseMenu)

01-20 06:59:19.684: E/AndroidRuntime(996): FATAL EXCEPTION: main 
01-20 06:59:19.684: E/AndroidRuntime(996): java.lang.RuntimeException: Unexpected end of document 
01-20 06:59:19.684: E/AndroidRuntime(996): at android.view.MenuInflater.parseMenu(MenuInflater.java:197) 
01-20 06:59:19.684: E/AndroidRuntime(996): at android.view.MenuInflater.inflate(MenuInflater.java:110) 
01-20 06:59:19.684: E/AndroidRuntime(996): at com.notice.official.OfficialActivity.onCreateOptionsMenu(OfficialActivity.java:183) 
01-20 06:59:19.684: E/AndroidRuntime(996): at android.app.Activity.onCreatePanelMenu(Activity.java:2504) 
01-20 06:59:19.684: E/AndroidRuntime(996): at com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:413) 
01-20 06:59:19.684: E/AndroidRuntime(996): at com.android.internal.policy.impl.PhoneWindow.doInvalidatePanelMenu(PhoneWindow.java:775) 
01-20 06:59:19.684: E/AndroidRuntime(996): at com.android.internal.policy.impl.PhoneWindow$1.run(PhoneWindow.java:198) 
01-20 06:59:19.684: E/AndroidRuntime(996): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749) 
01-20 06:59:19.684: E/AndroidRuntime(996): at android.view.Choreographer.doCallbacks(Choreographer.java:562) 
01-20 06:59:19.684: E/AndroidRuntime(996): at android.view.Choreographer.doFrame(Choreographer.java:531) 
01-20 06:59:19.684: E/AndroidRuntime(996): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735) 
01-20 06:59:19.684: E/AndroidRuntime(996): at android.os.Handler.handleCallback(Handler.java:730) 
01-20 06:59:19.684: E/AndroidRuntime(996): at android.os.Handler.dispatchMessage(Handler.java:92) 
01-20 06:59:19.684: E/AndroidRuntime(996): at android.os.Looper.loop(Looper.java:137) 
01-20 06:59:19.684: E/AndroidRuntime(996): at android.app.ActivityThread.main(ActivityThread.java:5103) 
01-20 06:59:19.684: E/AndroidRuntime(996): at java.lang.reflect.Method.invokeNative(Native Method) 
01-20 06:59:19.684: E/AndroidRuntime(996): at java.lang.reflect.Method.invoke(Method.java:525) 
01-20 06:59:19.684: E/AndroidRuntime(996): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 
01-20 06:59:19.684: E/AndroidRuntime(996): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
01-20 06:59:19.684: E/AndroidRuntime(996): at dalvik.system.NativeStart.main(Native Method) 
+1

예외가'com.notice.official.OfficialActivity.onCreateOptionsMenu (OfficialActivity.java:183) '에 보인다. 아마도'R.menu'에서 형식이 잘못된 XML 파일을 부풀려하려고합니까? – Nachi

+0

가 잘못 되었나요? 안으로? –

+0

'예상치 못한 문서 종료'는 XML이 유효하지 않음을 의미합니다. 일부 태그가 제대로 닫히지 않았습니까? – Nachi

답변

3

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.official, menu); 
    official_menu = menu.findItem(R.id.ac_official); 
    important_menu = menu.findItem(R.id.ac_important); 
    normal_menu = menu.findItem(R.id.ac_normal); 
    create_menu = menu.findItem(R.id.ac_create); 
    if(dp.getDesignation().equalsIgnoreCase("student")){ 
     create_menu.setVisible(false); 
    } 
    profile_menu = menu.findItem(R.id.ac_profile); 
    return true; 
} 

는 이미 폐쇄 같은 문제가 있었다 및 XML에 있었다하는 <item> 외부 하위 메뉴를 넣고 있었어요 /> 예 :

<item 
    android:id="@+id/menu_map" 
    android:title="Map" /> 

<item 
    android:id="@+id/menu_options" 
    android:title="Options" /> 

    <menu> 
     <item 
      android:id="@+id/menu_sync" 
      android:title="Sync" /> 
    </menu> 

그냥 닫습니다 기억 하위 메뉴 다음에 <item>. 단순하지만 때로는 발생합니다.

0

메뉴가 비정상적으로 끝나는 동안 메뉴 (메뉴)에 적절한 태그가 없음을 의미합니다. 이 웹 사이트에서 XML을 확인할 수 있습니다 http://www.xmlvalidation.com/

샘플 메뉴 파일 :

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" > 

<item 
    android:id="@+id/reset_count_menu" 
    android:orderInCategory="101" 
    android:showAsAction="never|collapseActionView" 
    android:title="@string/reset_count"/> 
<item 
    android:id="@+id/count_type_menu" 
    android:orderInCategory="102" 
    android:showAsAction="never|collapseActionView" 
    android:title="@string/count_forward_backward"/> 
<item 
    android:id="@+id/set_initial_count_menu" 
    android:orderInCategory="103" 
    android:showAsAction="never|collapseActionView" 
    android:title="@string/set_initial_count"/> 
<item 
    android:id="@+id/set_counter_name_menu" 
    android:orderInCategory="103" 
    android:showAsAction="never|collapseActionView" 
    android:title="@string/set_counter_name"/> 

</menu> 
관련 문제