2011-04-21 56 views
0

我有一個關於我的gridview奇怪的錯誤。它工作正常,直到它無緣無故地墜毀。 下面是錯誤代碼:GridView奇怪的錯誤

04-21 14:00:08.610: ERROR/AndroidRuntime(578): FATAL EXCEPTION: main 
04-21 14:00:08.610: ERROR/AndroidRuntime(578): java.lang.RuntimeException: Unable to start activity ComponentInfo{joel.TPLibrary/joel.TPLibrary.MainBody}: java.lang.NullPointerException 
04-21 14:00:08.610: ERROR/AndroidRuntime(578):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
04-21 14:00:08.610: ERROR/AndroidRuntime(578):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
04-21 14:00:08.610: ERROR/AndroidRuntime(578):  at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
04-21 14:00:08.610: ERROR/AndroidRuntime(578):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
04-21 14:00:08.610: ERROR/AndroidRuntime(578):  at android.os.Handler.dispatchMessage(Handler.java:99) 
04-21 14:00:08.610: ERROR/AndroidRuntime(578):  at android.os.Looper.loop(Looper.java:123) 
04-21 14:00:08.610: ERROR/AndroidRuntime(578):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
04-21 14:00:08.610: ERROR/AndroidRuntime(578):  at java.lang.reflect.Method.invokeNative(Native Method) 
04-21 14:00:08.610: ERROR/AndroidRuntime(578):  at java.lang.reflect.Method.invoke(Method.java:521) 
04-21 14:00:08.610: ERROR/AndroidRuntime(578):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
04-21 14:00:08.610: ERROR/AndroidRuntime(578):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
04-21 14:00:08.610: ERROR/AndroidRuntime(578):  at dalvik.system.NativeStart.main(Native Method) 
04-21 14:00:08.610: ERROR/AndroidRuntime(578): Caused by: java.lang.NullPointerException 
***04-21 14:00:08.610: ERROR/AndroidRuntime(578):  at joel.TPLibrary.MainBody.onCreate(MainBody.java:31)*** 
04-21 14:00:08.610: ERROR/AndroidRuntime(578):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
04-21 14:00:08.610: ERROR/AndroidRuntime(578):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
04-21 14:00:08.610: ERROR/AndroidRuntime(578):  ... 11 more 

接下來是錯誤的行:

GridView gridview = (GridView) findViewById(R.id.gridview); 
    gridview.setAdapter(new MyAdapter(this)); 

    gridview.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 
      // TODO Auto-generated method stub 
      switch (position) { 
       case 0: 
        Intent myIntentSearch = new Intent(); 
        myIntentSearch.setClassName("joel.TPLibrary","joel.TPLibrary.Search"); 
        startActivity(myIntentSearch); 
        break; 
       case 1: 
        Intent myIntentFP = new Intent(); 
        myIntentFP.setClassName("joel.TPLibrary","joel.TPLibrary.FloorPlan"); 
        startActivity(myIntentFP); 
        break; 
       case 2: 
        Intent myIntentNews = new Intent(); 
        myIntentNews.setClassName("joel.TPLibrary","joel.TPLibrary.News"); 
        startActivity(myIntentNews); 
        break; 
       case 3: 
        Intent myIntenteRes = new Intent(); 
        myIntenteRes.setClassName("joel.TPLibrary","joel.TPLibrary.eResources"); 
        startActivity(myIntenteRes); 
        break; 
       case 4: 
        Intent myIntentOH = new Intent(); 
        myIntentOH.setClassName("joel.TPLibrary","joel.TPLibrary.OpeningHours"); 
        startActivity(myIntentOH); 
        break; 
       case 5: 
        Intent myIntentCU = new Intent(); 
        myIntentCU.setClassName("joel.TPLibrary","joel.TPLibrary.ContactUs"); 
        startActivity(myIntentCU); 
        break; 
       case 6: 
        Intent myIntentLibFb = new Intent(); 
        myIntentLibFb.setClassName("joel.TPLibrary","joel.TPLibrary.LibraryFacebook"); 
        startActivity(myIntentLibFb); 
        break; 
       case 7: 
        Intent myIntentNA = new Intent(); 
        myIntentNA.setClassName("joel.TPLibrary","joel.TPLibrary.NewArrivals"); 
        startActivity(myIntentNA); 
        break; 
       case 8: 
        Intent myIntentAnn = new Intent(); 
        myIntentAnn.setClassName("joel.TPLibrary","joel.TPLibrary.Announements"); 
        startActivity(myIntentAnn); 
        break; 
      } 
     } 
    }); 
} 

誰能幫助我?

+0

@Joel:那麼你發佈的代碼中哪一行是第31行? – Squonk 2011-04-21 06:22:11

+0

您是否已將所有活動註冊到應用程序的清單文件中? – Flo 2011-04-21 06:22:53

+0

是GridView gridview =(GridView)findViewById(R.id.gridview); 31號線? – 2011-04-21 06:29:04

回答

0

由於您的Activity是基於你的堆棧跟蹤的

... at joel.TPLibrary.MainBody.onCreate(MainBody.java:31)*** 

線訪問,我能想到的,可能會導致此問題的唯一事情是:

  • 你忘記設置內容 查看爲您的Activity裏面的 onCreate()方法,例如:setContentView(R.layout.main);
  • 您的main.xml(引用d爲 上面的R.layout.main)不包含 a <GridView android:id="@+id/gridview" [...] 元素。

提供onCreate方法的全部來源,並標記31行將有助於檢測確切的問題,而不僅僅是猜測。請分享更多信息/回覆您的意見。

+0

嘿謝謝你們。但似乎它再次工作。我所做的只是退出Eclipse並再次運行Eclipse,然後應用程序再次運行。對不起,造成的不便。 – 2011-04-25 00:12:04