0

我已經創建了一個應用程序,我使用ArrayAdapter將行項目的值加載到列表視圖中,但嘗試在我的虛擬設備上運行應用程序後,下面的錯誤日誌:Android應用程序不會運行,在MainActivity的空點異常

我爲我的MainActivity代碼:如下錯誤日誌

07-08 02:11:07.077: D/AndroidRuntime(995): Shutting down VM 
07-08 02:11:07.107: W/dalvikvm(995): threadid=1: thread exiting with uncaught exception       
(group=0x41465700) 
07-08 02:11:07.146: E/AndroidRuntime(995): FATAL EXCEPTION: main 
07-08 02:11:07.146: E/AndroidRuntime(995): java.lang.RuntimeException: Unable to  
instantiate activity 
ComponentInfo{com.example.deenbuddy/com.example.deenbuddy.MainActivity}: 
java.lang.NullPointerException 
07-08 02:11:07.146: E/AndroidRuntime(995): at 
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2137) 
07-08 02:11:07.146: E/AndroidRuntime(995): at 
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261) 
07-08 02:11:07.146: E/AndroidRuntime(995): at 
android.app.ActivityThread.access$600(ActivityThread.java:141) 
07-08 02:11:07.146: E/AndroidRuntime(995): at 
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) 
07-08 02:11:07.146: E/AndroidRuntime(995): at 
android.os.Handler.dispatchMessage(Handler.java:99) 
07-08 02:11:07.146: E/AndroidRuntime(995): at android.os.Looper.loop(Looper.java:137) 
07-08 02:11:07.146: E/AndroidRuntime(995): at  
android.app.ActivityThread.main(ActivityThread.java:5103) 
07-08 02:11:07.146: E/AndroidRuntime(995): at 
java.lang.reflect.Method.invokeNative(Native Method) 
07-08 02:11:07.146: E/AndroidRuntime(995): at 
java.lang.reflect.Method.invoke(Method.java:525) 
07-08 02:11:07.146: E/AndroidRuntime(995): at 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 
07-08 02:11:07.146: E/AndroidRuntime(995): at 
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
07-08 02:11:07.146: E/AndroidRuntime(995): at dalvik.system.NativeStart.main(Native 
Method) 
07-08 02:11:07.146: E/AndroidRuntime(995): Caused by: java.lang.NullPointerException 
07-08 02:11:07.146: E/AndroidRuntime(995): at 
android.content.ContextWrapper.getResources(ContextWrapper.java:89) 
07-08 02:11:07.146: E/AndroidRuntime(995): at 
android.view.ContextThemeWrapper.getResources(ContextThemeWrapper.java:78) 
07-08 02:11:07.146: E/AndroidRuntime(995): at com.example.deenbuddy.MainActivity.<init> 
(MainActivity.java:23) 
07-08 02:11:07.146: E/AndroidRuntime(995): at java.lang.Class.newInstanceImpl(Native 
Method) 
07-08 02:11:07.146: E/AndroidRuntime(995): at 
java.lang.Class.newInstance(Class.java:1130) 
07-08 02:11:07.146: E/AndroidRuntime(995): at 
android.app.Instrumentation.newActivity(Instrumentation.java:1061) 
07-08 02:11:07.146: E/AndroidRuntime(995): at  
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2128) 
07-08 02:11:07.146: E/AndroidRuntime(995): ... 11 more 

package com.example.deenbuddy; 

import java.util.List; 
import java.util.ArrayList; 
import android.app.Activity; 
import android.content.Context; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.Toast; 
import android.widget.ImageView; 
import com.example.deenbuddy.RowItem; 
import com.example.deenbuddy.CListView; 


public class MainActivity extends Activity 
{ 

//Arrays for RowItem values 

final String[] uname = new String[] {getResources().getString(R.string.social),getResources().getString(R.string.social),getResources().getString(R.string.social)}; 

final String[] ustatus = new String[]{getResources().getString(R.string.temp_ustatus0),getResources().getString(R.string.temp_ustat us0),getResources().getString(R.string.temp_ustatus0)}; 
final Integer[] upic = new Integer[]{R.drawable.tig0,R.drawable.tig0,R.drawable.tig0}; 

//ListView and RowItem for ListView 
ListView listview; 
List<RowItem> rowItem; 
@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 

//News Buttons 
ImageView newsb1 = (ImageView) findViewById(R.id.news1); 
ImageView newsb2 = (ImageView) findViewById(R.id.news2); 
ImageView newsb3 = (ImageView) findViewById(R.id.news3); 
ImageView newsb4 = (ImageView) findViewById(R.id.news4); 

//Feature Buttons 
ImageView featb1 = (ImageView) findViewById(R.id.feat1); 
ImageView featb2 = (ImageView) findViewById(R.id.feat2); 
ImageView featb3 = (ImageView) findViewById(R.id.feat3); 
ImageView featb4 = (ImageView) findViewById(R.id.feat4); 

//OnClicks for news 
newsb1.setOnClickListener(new View.OnClickListener(){ 
    public void onClick(View v) 
    { 
     setContentView(R.layout.newstitle); 
    } 
}); 

newsb2.setOnClickListener(new View.OnClickListener(){ 
    public void onClick(View v) 
    { 
     setContentView(R.layout.newstitle); 
    } 
}); 

newsb3.setOnClickListener(new View.OnClickListener(){ 
    public void onClick(View v) 
    { 
     setContentView(R.layout.newstitle); 
    } 
}); 

newsb4.setOnClickListener(new View.OnClickListener(){ 
    public void onClick(View v) 
    { 
     setContentView(R.layout.newstitle); 
    } 
}); 

//OnClicks for feat 
featb1.setOnClickListener(new View.OnClickListener(){ 
    public void onClick(View v) 
    { 
     setContentView(R.layout.newstitle); 
    } 
}); 

featb2.setOnClickListener(new View.OnClickListener(){ 
    public void onClick(View v) 
    { 
     setContentView(R.layout.newstitle); 
    } 
}); 

featb3.setOnClickListener(new View.OnClickListener(){ 
    public void onClick(View v) 
    { 
     setContentView(R.layout.newstitle); 
    } 
}); 

featb4.setOnClickListener(new View.OnClickListener(){ 
    public void onClick(View v) 
    { 
     setContentView(R.layout.newstitle); 
    } 
}); 

rowItem = new ArrayList<RowItem>(); 
for(int x = 0; x < uname.length; x++) 
{ 
    RowItem item = new RowItem(upic[x], uname[x], ustatus[x]); 
    rowItem.add(item); 
} 

listview = (ListView) findViewById(R.id.sfeed); 
ArrayAdapter<RowItem> adapter = new ArrayAdapter<RowItem>  
(this,R.layout.sfeed_list,rowItem); 
listview.setAdapter(adapter); 
listview.setOnItemClickListener((OnItemClickListener)this); 

} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) 
{ 
// Inflate the menu; this adds items to the action bar if it is present. 
getMenuInflater().inflate(R.menu.main, menu); 
return true; 
} 



} 

我知道這是很多讀通過,但也許有人可以幫助我理解我的問題是什麼,而不必閱讀整個日誌...任何和所有的幫助將不勝感激。預先感謝您的閱讀和回覆。

+3

帖子'MainActivity'代碼.... –

+0

可以請你不用代碼更新代碼,我們不能來幫你。 –

+0

根據上面的消息,錯誤在MainActivity的第23行......這就是您/我們需要查看的地方(以及之前和之後......錯誤並不總是與它所在的線路有關,而是經常) –

回答

1

檢查,這些都存在在你的代碼

public class youractivityname extends activity{ 

Context context; 
@override 
public void Oncreate(Bundle savedInstancestate) 
{ 
super.oncreate(savedInstacestate); 
context=this; 

//........yourcode 

yourlistview.this.runOnUiThread(new runnable){ 

@override 
public void run() 
{ 
//youradapter calling with context parameter along with required parameters 
yourlistview.setadapter(yourlistadapetObject); 
} 

}); 
} 
} 

然後運行,讓我通知

+0

對不起,這似乎沒有工作,並導致其他錯誤,我回答了包括我的代碼的答案...請看看它。謝謝。 – user2204661

+0

把這些行代碼放到runOnUiThread中它會工作listview =(ListView)findViewById(R.id.sfeed); ArrayAdapter adapter = new ArrayAdapter (this,R.layout.sfeed_list,rowItem); listview.setAdapter(adapter);一旦你成功讓我告知 –

+0

我會嘗試你的方式額外的信貸,但我最近通過使用Integer類來啓動我的數組並通過適配器,我也定製瞭解決了這個問題。非常感謝你的幫助,我也會探索你的技術! – user2204661

相關問題