I am getting this error at runtime.
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
StackTrace:
01-12 03:44:54.270: E/AndroidRuntime(1437): FATAL EXCEPTION: main
01-12 03:44:54.270: E/AndroidRuntime(1437): Process: home.saket, PID: 1437
01-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 reference
01-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.access$800(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 reference
01-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 more
01-12 03:44:54.272: W/ActivityManager(472): Force finishing activity home.saket/.addmember.Add_Update_User
01-12 03:44:54.273: E/ActivityManager(472): Invalid thumbnail dimensions: 384x384
Below I am posted the codes and pointed out the error line.
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();
}
}
Answer
called_from
must be null
. Add a test against that condition like
if (called_from != null && called_from.equalsIgnoreCase("add")) {
or you could use Yoda conditions (per the Advantages in the linked Wikipedia article it can also solve some types of unsafe null
behavior they can be described as placing the constant portion of the expression on the left side of the conditional statement)
if ("add".equalsIgnoreCase(called_from)) { // <-- safe if called_from is null
No comments:
Post a Comment