0

请在这方面需要帮助。当我尝试在模拟器上运行我的应用程序时,我的 Logcat 和我的 UI 崩溃中出现了这些错误

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 文件。当我单击 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>

>

4

1 回答 1

0

你把代码放在SettingsActivity' 的构造函数中,这是错误的,不要在应用程序组件的构造函数中编写任何代码(如活动和服务)。在您的情况下,并非所有内容都已在那里创建 - 该Resources对象尚未创建。将您的代码移动到onCreate,它会正常工作。

于 2013-07-04T20:07:42.433 回答