NullPointerException:尝试在空对象引用上调用虚方法’boolean java.lang.String.equalsIgnoreCase(java.lang.String)’

NullPointerException:尝试在空对象引用上调用虚方法’boolean java.lang.String.equalsIgnoreCase(java.lang.String)’,第1张

概述参见英文答案>WhatisaNullPointerException,andhowdoIfixit?                                    12个我在运行时收到此错误.java.lang.RuntimeException:UnabletostartactivityComponentInfojava.lang.NullPointerEx

参见英文答案 > What is a NullPointerException, and how do I fix it?                                    12个
我在运行时收到此错误.

java.lang.RuntimeException: Unable to start activity ComponentInfo
java.lang.NullPointerException: Attempt to invoke virtual method
‘boolean java.lang.String.equalsIgnoreCase(java.lang.String)’ on a
null object reference

堆栈跟踪:

01-12 03:44:54.270: E/AndroIDRuntime(1437): FATAL EXCEPTION: main01-12 03:44:54.270: E/AndroIDRuntime(1437): Process: home.saket, PID: 143701-12 03:44:54.270: E/AndroIDRuntime(1437): java.lang.RuntimeException: Unable to start activity ComponentInfo{home.saket/home.saket.addmember.Add_Update_User}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equalsIgnoreCase(java.lang.String)' on a null object reference01-12 03:44:54.270: E/AndroIDRuntime(1437):     at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:2298)01-12 03:44:54.270: E/AndroIDRuntime(1437):     at androID.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)01-12 03:44:54.270: E/AndroIDRuntime(1437):     at androID.app.ActivityThread.access0(ActivityThread.java:144)01-12 03:44:54.270: E/AndroIDRuntime(1437):     at androID.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)01-12 03:44:54.270: E/AndroIDRuntime(1437):     at androID.os.Handler.dispatchMessage(Handler.java:102)01-12 03:44:54.270: E/AndroIDRuntime(1437):     at androID.os.Looper.loop(Looper.java:135)01-12 03:44:54.270: E/AndroIDRuntime(1437):     at androID.app.ActivityThread.main(ActivityThread.java:5221)01-12 03:44:54.270: E/AndroIDRuntime(1437):     at java.lang.reflect.Method.invoke(Native Method)01-12 03:44:54.270: E/AndroIDRuntime(1437):     at java.lang.reflect.Method.invoke(Method.java:372)01-12 03:44:54.270: E/AndroIDRuntime(1437):     at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)01-12 03:44:54.270: E/AndroIDRuntime(1437):     at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:694)01-12 03:44:54.270: E/AndroIDRuntime(1437): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equalsIgnoreCase(java.lang.String)' on a null object reference01-12 03:44:54.270: E/AndroIDRuntime(1437):     at home.saket.addmember.Add_Update_User.onCreate(Add_Update_User.java:38)01-12 03:44:54.270: E/AndroIDRuntime(1437):     at androID.app.Activity.performCreate(Activity.java:5933)01-12 03:44:54.270: E/AndroIDRuntime(1437):     at androID.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)01-12 03:44:54.270: E/AndroIDRuntime(1437):     at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:2251)01-12 03:44:54.270: E/AndroIDRuntime(1437):     ... 10 more01-12 03:44:54.272: W/ActivityManager(472):   Force finishing activity home.saket/.addmember.Add_Update_User01-12 03:44:54.273: E/ActivityManager(472): InvalID thumbnail dimensions: 384x384

下面我发布了代码并指出了错误行.

Add_Update_User.java:

@OverrIDe    protected voID onCreate(Bundle savedInstanceState) {    // Todo auto-generated method stub    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.add_update_screen);    // set screen    Set_Add_Update_Screen();    // set visibility of vIEw as per calling activity    String called_from = getIntent().getStringExtra("called");    if (called_from.equalsIgnoreCase("add")) {  --->38th error line        add_vIEw.setVisibility(VIEw.VISIBLE);        update_vIEw.setVisibility(VIEw.GONE);    } else {        update_vIEw.setVisibility(VIEw.VISIBLE);        add_vIEw.setVisibility(VIEw.GONE);        USER_ID = Integer.parseInt(getIntent().getStringExtra("USER_ID"));        Contact c = dbHandler.Get_Contact(USER_ID);          add_name.setText(c.getname());        add_mobile.setText(c.getPhoneNumber());        add_email.setText(c.getEmail());        // dbHandler.close();    }    }

解决方法:

called_from必须为null.添加针对该条件的测试,如

if (called_from != null && called_from.equalsIgnoreCase("add")) {

或者您可以使用Yoda conditions(根据链接的维基百科文章中的优点,它也可以解决某些类型的不安全的空行为,它们可以被描述为将表达式的常量部分放在条件语句的左侧)

if ("add".equalsIgnoreCase(called_from)) { // <-- safe if called_from is null
总结

以上是内存溢出为你收集整理的NullPointerException:尝试在空对象引用上调用虚方法’boolean java.lang.String.equalsIgnoreCase(java.lang.String)’全部内容,希望文章能够帮你解决NullPointerException:尝试在空对象引用上调用虚方法’boolean java.lang.String.equalsIgnoreCase(java.lang.String)’所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1098110.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存