
参见英文答案 > 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)’所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)