【问题标题】:AndroidRuntime(1130): FATAL EXCEPTION: mainAndroidRuntime(1130):致命异常:主要
【发布时间】:2013-07-04 20:01:25
【问题描述】:

请在这方面需要帮助。当我尝试在模拟器上运行我的应用程序时,我的 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>

>

【问题讨论】:

  • 如果没有看到您的代码,我们将无法帮助您。请发布您的代码的一部分(特别是 SettingActivity.java 文件的第 18 行),以便我们知道问题可能是什么并为您提供帮助。
  • 您能告诉我们您的第 18 行是什么吗?我们在这里很难计算行数,我们无法准确知道它是哪条行。谢谢

标签: android


【解决方案1】:

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

【讨论】:

  • 实际上我要做的是首先如果有人单击单选按钮 HIM 或 HER 命名单选按钮,这将在其下方显示一个隐藏的 Textview,称为 Realtionship with spinner。我想要 spinner 的值从数组中获取..但是我得到了所有 logcat 错误..
  • ..非常感谢..它成功了..我做到了,我把整个代码放在 onCreate 方法中,它开始工作了......
  • 太棒了 :) 你看,问题是在字段声明中调用getResources(实际上移动到构造函数中)。只需避免在Activity.onCreate 执行之前做任何事情。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-17
  • 2022-10-25
  • 2018-06-28
  • 2015-04-16
  • 2019-01-10
相关资源
最近更新 更多