【问题标题】:NullPointerException error with Intent带有 Intent 的 NullPointerException 错误
【发布时间】:2012-11-11 06:03:45
【问题描述】:

我在单击 button1 后立即收到空指针异常错误。但我不确定路径原因是什么。有人可以帮我吗?

public class FirstActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Button button1 = (Button)findViewById(R.id.button1);
    button1.setOnClickListener(new ButtonClickListener());
}
class ButtonClickListener implements OnClickListener {
    public void onClick(View v){
        EditText name = (EditText)findViewById(R.id.name);
        EditText address = (EditText)findViewById(R.id.address);

        Spinner month = (Spinner)findViewById(R.id.month);
        Spinner day = (Spinner)findViewById(R.id.day);

        RadioGroup radio = (RadioGroup)findViewById(R.id.gendar);
        RadioButton radiobutton=
                (RadioButton)findViewById(radio.getCheckedRadioButtonId());

        CheckBox applecheck = (CheckBox)findViewById(R.id.applecheck);
        CheckBox orangecheck = (CheckBox)findViewById(R.id.orangecheck);
        CheckBox peachcheck = (CheckBox)findViewById(R.id.peachcheck);

        EditText appleqty = (EditText)findViewById(R.id.appleqty);
        EditText orangeqty = (EditText)findViewById(R.id.orangeqty);
        EditText peachqty = (EditText)findViewById(R.id.peachqty);

        Intent intent = new Intent(FirstActivity.this,SecondActivity.class);

        intent.putExtra("NAME", name.getText().toString());
        intent.putExtra("ADDRESS", address.getText().toString());
        intent.putExtra("MONTH",month.getSelectedItem().toString());
        intent.putExtra("DAY", day.getSelectedItem().toString());
        intent.putExtra("GENDAR", radiobutton.getText().toString());
        if(applecheck.isChecked())
            intent.putExtra("APPLE", appleqty.getText().toString());
        if(orangecheck.isChecked())
            intent.putExtra("ORANGE", orangeqty.getText().toString());
        if(peachcheck.isChecked())
            intent.putExtra("PEACH", peachqty.getText().toString());

        startActivity(intent);

    }
}

}

public class SecondActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);

    Bundle extra= getIntent().getExtras();

    String name = extra.getString("NAME");
    String address = extra.getString("ADDRESS");
    String month = extra.getString("MONTH");
    String day = extra.getString("DAY");
    String gendar = extra.getString("GENDAR");
    String apple = extra.getString("APPLE");
    String orange = extra.getString("ORANGE");
    String peach = extra.getString("PEACH");

11-11 14:38:38.681:E/AndroidRuntime(363):致命异常:主要 11-11 14:38:38.681: E/AndroidRuntime(363): java.lang.NullPointerException 11-11 14:38:38.681: E/AndroidRuntime(363): 在 com.example.sample4_3.FirstActivity$ButtonClickListener.onClick(FirstActivity.java:34) 11-11 14:38:38.681: E/AndroidRuntime(363): 在 android.view.View.performClick(View.java:2408) 11-11 14:38:38.681: E/AndroidRuntime(363): 在 android.view.View$PerformClick.run(View.java:8816) 11-11 14:38:38.681: E/AndroidRuntime(363): 在 android.os.Handler.handleCallback(Handler.java:587) 11-11 14:38:38.681: E/AndroidRuntime(363): 在 android.os.Handler.dispatchMessage(Handler.java:92) 11-11 14:38:38.681: E/AndroidRuntime(363): 在 android.os.Looper.loop(Looper.java:123) 11-11 14:38:38.681: E/AndroidRuntime(363): 在 android.app.ActivityThread.main(ActivityThread.java:4627) 11-11 14:38:38.681: E/AndroidRuntime(363): 在 java.lang.reflect.Method.invokeNative(Native Method) 11-11 14:38:38.681: E/AndroidRuntime(363): 在 java.lang.reflect.Method.invoke(Method.java:521) 11-11 14:38:38.681: E/AndroidRuntime(363): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)

我遇到的新错误如下; 11-11 16:24:39.680: E/AndroidRuntime(554): java.lang.RuntimeException: 无法启动活动 ComponentInfo{com.example.sample4_3/com.example.sample4_3.SecondActivity}: android.view.InflateException: 二进制XML 文件第 126 行:膨胀类 textView 时出错 11-11 16:24:39.680: E/AndroidRuntime(554): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 11-11 16:24:39.680: E/AndroidRuntime(554): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 11-11 16:24:39.680: E/AndroidRuntime(554): 在 android.app.ActivityThread.access$2300(ActivityThread.java:125) 11-11 16:24:39.680: E/AndroidRuntime(554): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 11-11 16:24:39.680: E/AndroidRuntime(554): 在 android.os.Handler.dispatchMessage(Handler.java:99) 11-11 16:24:39.680: E/AndroidRuntime(554): 在 android.os.Looper.loop(Looper.java:123) 11-11 16:24:39.680: E/AndroidRuntime(554): 在 android.app.ActivityThread.main(ActivityThread.java:4627) 11-11 16:24:39.680: E/AndroidRuntime(554): 在 java.lang.reflect.Method.invokeNative(Native Method) 11-11 16:24:39.680: E/AndroidRuntime(554): 在 java.lang.reflect.Method.invoke(Method.java:521) 11-11 16:24:39.680: E/AndroidRuntime(554): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 11-11 16:24:39.680: E/AndroidRuntime(554): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 11-11 16:24:39.680: E/AndroidRuntime(554): at dalvik.system.NativeStart.main(Native Method) 11-11 16:24:39.680: E/AndroidRuntime(554): 由: android.view.InflateException: Binary XML file line #126: Error inflating class textView 11-11 16:24:39.680: E/AndroidRuntime(554): 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:576) 11-11 16:24:39.680: E/AndroidRuntime(554): 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:618) 11-11 16:24:39.680: E/AndroidRuntime(554): 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:621) 11-11 16:24:39.680: E/AndroidRuntime(554): 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:621) 11-11 16:24:39.680: E/AndroidRuntime(554): 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:621) 11-11 16:24:39.680: E/AndroidRuntime(554): 在 android.view.LayoutInflater.inflate(LayoutInflater.java:407) 11-11 16:24:39.680: E/AndroidRuntime(554): 在 android.view.LayoutInflater.inflate(LayoutInflater.java:320) 11-11 16:24:39.680: E/AndroidRuntime(554): 在 android.view.LayoutInflater.inflate(LayoutInflater.java:276) 11-11 16:24:39.680: E/AndroidRuntime(554): 在 com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:198) 11-11 16:24:39.680: E/AndroidRuntime(554): 在 android.app.Activity.setContentView(Activity.java:1647) 11-11 16:24:39.680: E/AndroidRuntime(554): 在 com.example.sample4_3.SecondActivity.onCreate(SecondActivity.java:14) 11-11 16:24:39.680: E/AndroidRuntime(554): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 11-11 16:24:39.680: E/AndroidRuntime(554): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 11-11 16:24:39.680: E/AndroidRuntime(554): ... 11 更多 11-11 16:24:39.680: E/AndroidRuntime(554): 由: java.lang.ClassNotFoundException: android.view.textView 在加载器 dalvik.system.PathClassLoader[/data/app/com.example.sample4_3-2 .apk] 11-11 16:24:39.680: E/AndroidRuntime(554): 在 dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243) 11-11 16:24:39.680: E/AndroidRuntime(554): 在 java.lang.ClassLoader.loadClass(ClassLoader.java:573) 11-11 16:24:39.680: E/AndroidRuntime(554): 在 java.lang.ClassLoader.loadClass(ClassLoader.java:532) 11-11 16:24:39.680: E/AndroidRuntime(554): 在 android.view.LayoutInflater.createView(LayoutInflater.java:466) 11-11 16:24:39.680: E/AndroidRuntime(554): 在 android.view.LayoutInflater.onCreateView(LayoutInflater.java:544) 11-11 16:24:39.680: E/AndroidRuntime(554): 在 com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:66) 11-11 16:24:39.680: E/AndroidRuntime(554): 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563) 11-11 16:24:39.680: E/AndroidRuntime(554): ... 23 更多

好吧,即使我检查了第 126 行,我也找不到解决此错误的方法。

【问题讨论】:

    标签: android-intent nullpointerexception


    【解决方案1】:

    您能否突出显示第 34 行。但从您的代码中我可以很容易地看出,在ButtonClickListener 中,您正在访问findViewById,而不使用作为参数传入的视图。我不确定为什么那不是错误,因为您不应该这样做。另一个可能的问题是R.id.button1 可能拼写错误,或者在 xml 中拼写错误。

    【讨论】:

    • 感谢您的回复。我发现了错误并面临新的错误。错误是我忘记添加有关 Intent 的清单文件。但现在我面临新的错误。好吧,在这个网站上可能很难获得帮助,但我在 eclipse 上上传错误,如上所述。
    • 哦。错误是我告诉你的还是别的什么?您是否修复了新错误?
    • 非常感谢。是您在 Manifest 中指出的意图和代码。不过现在是新的。我不能把错误,所以我会把错误日志放在上面。
    • 非常感谢,安迪。也如你所说。该字母拼写错误(小写),并且 xml 中缺少一些参数,例如“layout_height”。现在可以了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-27
    • 1970-01-01
    • 2021-09-08
    • 1970-01-01
    • 1970-01-01
    • 2021-04-17
    相关资源
    最近更新 更多