2013-07-04 80 views
0

請需要在this.When我試圖在模擬器中運行我的應用我在logcat中得到了這些錯誤,我的UI崩潰AndroidRuntime(1130):致命異常:主要

logcat的錯誤

幫助
07-04 15:54:08.453: W/dalvikvm(1130): threadid=1: thread exiting with uncaught  exception (group=0x2bd39930) 
07-04 15:54:08.870: E/AndroidRuntime(1130): FATAL EXCEPTION: main 
07-04 15:54:08.870: E/AndroidRuntime(1130): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo 
{com.example.giftfinder/com.example.giftfinder.SettingActivity}: java.lang.NullPointerException 
07-04 15:54:08.870: E/AndroidRuntime(1130):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2106) 
07-04 15:54:08.870: E/AndroidRuntime(1130):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
07-04 15:54:08.870: E/AndroidRuntime(1130):  at android.app.ActivityThread.access$600(ActivityThread.java:141) 
07-04 15:54:08.870: E/AndroidRuntime(1130):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
07-04 15:54:08.870: E/AndroidRuntime(1130):  at android.os.Handler.dispatchMessage(Handler.java:99) 
07-04 15:54:08.870: E/AndroidRuntime(1130):  at android.os.Looper.loop(Looper.java:137) 
07-04 15:54:08.870: E/AndroidRuntime(1130):  at android.app.ActivityThread.main(ActivityThread.java:5039) 
07-04 15:54:08.870: E/AndroidRuntime(1130):  at java.lang.reflect.Method.invokeNative(Native Method) 
07-04 15:54:08.870: E/AndroidRuntime(1130):  at java.lang.reflect.Method.invoke(Method.java:511) 
07-04 15:54:08.870: E/AndroidRuntime(1130):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
07-04 15:54:08.870: E/AndroidRuntime(1130):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
07-04 15:54:08.870: E/AndroidRuntime(1130):  at dalvik.system.NativeStart.main(Native Method) 
07-04 15:54:08.870: E/AndroidRuntime(1130): Caused by: java.lang.NullPointerException 
07-04 15:54:08.870: E/AndroidRuntime(1130):  at android.content.ContextWrapper.getResources(ContextWrapper.java:89 
07-04 15:54:08.870: E/AndroidRuntime(1130):  at android.view.ContextThemeWrapper.getResources(ContextThemeWrapper.java:78) 
07-04 15:54:08.870: E/AndroidRuntime(1130):  at com.example.giftfinder.SettingActivity.<init>(SettingActivity.java:18) 
07-04 15:54:08.870: E/AndroidRuntime(1130):  at java.lang.Class.newInstanceImpl(Native Method) 
07-04 15:54:08.870: E/AndroidRuntime(1130):  at java.lang.Class.newInstance(Class.java:1319) 
07-04 15:54:08.870: E/AndroidRuntime(1130):  at android.app.Instrumentation.newActivity(Instrumentation.java:1054) 
07-04 15:54:08.870: E/AndroidRuntime(1130):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097) 
07-04 15:54:08.870: E/AndroidRuntime(1130):  ... 11 more 

這是我SettingActivity.java file.When我點擊一個按鈕,在我的Mainactivity文件,將顯示此活動實際上由於崩潰或錯誤..

import android.app.Activity; 
import android.content.res.Resources; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ArrayAdapter; 
import android.widget.RadioButton; 
import android.widget.Spinner; 
import android.widget.TableRow; 

public class SettingActivity extends Activity { 
    Spinner him; 
    Spinner her; 
    TableRow tr2; 
    TableRow tr3; 
    //ArrayAdapter<String> adapter; 
    //private String[] mystring; 
    Resources res = getResources(); 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.settings); 
     tr2=(TableRow)findViewById(R.id.tr2); 
     tr3=(TableRow)findViewById(R.id.tr3); 
     him=(Spinner)findViewById(R.id.himspinner); 
     her=(Spinner)findViewById(R.id.herspinner); 
} 
public void onRadioButtonClicked(View view) 
{ 
    boolean checked = ((RadioButton)view).isChecked(); 
    switch(view.getId()){ 
    case R.id.him: 
     if(checked){ 
      tr2.setVisibility(View.VISIBLE); 
      him.setVisibility(View.VISIBLE); 
      ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.himentries, android.R.layout.simple_spinner_item); 
      him.setAdapter(adapter); 
      her.setVisibility(View.INVISIBLE); 
     } 
     break; 
    case R.id.her: 
    if(checked){ 
     tr2.setVisibility(View.VISIBLE); 
     him.setVisibility(View.VISIBLE); 
     ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.herentries, android.R.layout.simple_spinner_item); 
     him.setAdapter(adapter); 
     her.setVisibility(View.INVISIBLE);  
    } 
    break; 
    case R.id.couples: 
     if(checked){ 
     tr2.setVisibility(View.VISIBLE);  
    } 
    break; 
    default: 
     tr2.setVisibility(View.INVISIBLE); 
    } 

} 

} 

我的settings.xml文件

<

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:background="@drawable/background"> <TableLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <TableRow android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/tr1"> <TextView android:id="@+id/gender" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/gender" android:textSize="25sp" android:paddingLeft="20dp" android:paddingTop="10dp" android:paddingBottom="10dp" /> <RadioGroup android:id="@+id/rg1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginLeft="25dp" android:paddingLeft="20dp" android:paddingTop="15dp"> <RadioButton android:id="@+id/him" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/him" android:textSize="15sp" android:onClick="onRadioButtonClicked"/> <RadioButton android:id="@+id/her" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/her" android:textSize="15sp" android:layout_marginLeft="10dp" android:onClick="onRadioButtonClicked"/> <RadioButton android:id="@+id/couples" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/couples" android:textSize="15sp" android:layout_marginLeft="10dp" android:onClick="onRadioButtonClicked"/> </RadioGroup> </TableRow> <TableRow android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/tr2" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/relation" android:textSize="25sp" android:paddingLeft="20dp" android:paddingTop="10dp"/> <Spinner android:id="@+id/himspinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="25dp" android:prompt="@string/himprompt" /> <Spinner android:id="@+id/herspinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:entries="@array/herentries" android:prompt="@string/herprompt" android:visibility="invisible" android:layout_marginLeft="10dp"/> </TableRow> <TableRow android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/tr3" android:visibility="invisible" > <TextView android:id="@+id/category" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/category" android:textSize="25sp" android:paddingLeft="20dp" android:paddingTop="10dp"/> <RadioGroup android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginLeft="25dp" android:paddingLeft="20dp" android:paddingTop="15dp"> <RadioButton android:id="@+id/occ" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/occ" android:textSize="15sp"/> <RadioButton android:id="@+id/feel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/feel" android:textSize="15sp" android:layout_marginLeft="10dp"/> </RadioGroup> </TableRow> <TableRow android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/tr4" android:visibility="invisible"> <Spinner android:id="@+id/occspinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:entries="@array/occentries" android:prompt="@string/occprompt"/> <Spinner android:id="@+id/feelspinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:entries="@array/feelentries" android:prompt="@string/feelprompt"/> </TableRow> <TableRow android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/tr5" android:visibility="invisible"> <TextView android:id="@+id/age" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/age" android:textSize="25sp" android:paddingLeft="20dp" android:paddingTop="10dp"/> <Spinner android:id="@+id/agespinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="45dp" android:entries="@array/ageentries" android:prompt="@string/ageprompt"/> </TableRow> </TableLayout>

>

+0

我們無法在沒有看到您的代碼的情況下爲您提供幫助..請張貼您代碼的一部分(特別是'SettingActivity.java'文件的第18行),以便我們能夠知道問題的癥結所在,併爲您提供幫助。 –

+0

你能告訴我們你的第18行是什麼?我們很難計算線數,我們無法準確地知道它是哪條線。 Thx –

回答

0

你已經把代碼SettingsActivity的構造,這是錯誤的,不寫在應用程序組件的構造函數的任何代碼(像活動和服務)。並非所有東西都已經在那裏創建,在您的情況下 - Resources對象尚未創建。改爲將您的代碼移動到onCreate,它將正常工作。

+0

其實我想要做的是首先如果有人點擊單選按鈕或HIM或她命名的單選按鈕,這將顯示一個隱藏的Textview下面它稱爲與微調的Realtionship.I想微調的價值從陣列..但我得到這個所有的logcat錯誤.. – user2504760

+0

..謝謝你這麼多..它的工作..我做了,我把整個代碼在onCreate方法,它開始工作... – user2504760

+0

偉大的:)你看,問題是在字段聲明中調用'getResources'(實際上移到構造函數中)。在執行「Activity.onCreate」之前,請避免做任何事情。 – Jong

相關問題