-2

In Main app, When I execute another app, Occur NullPointerException.

this logcat here

java.lang.RuntimeException: Unable to start activity ComponentInfo{kr.co.iosystem.blackeyeonandroid/kr.co.iosystem.blackeyeonandroid.BlackEyeActivity}: 
java.lang.NullPointerException
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184)
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
android.app.ActivityThread.access$800(ActivityThread.java:135)
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
android.os.Handler.dispatchMessage(Handler.java:102)
android.os.Looper.loop(Looper.java:136)
android.app.ActivityThread.main(ActivityThread.java:5001)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:515)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
dalvik.system.NativeStart.main(Native Method)

Caused by: java.lang.NullPointerException
android.app.Instrumentation.execStartActivity(Instrumentation.java:1417)
android.app.Activity.startActivityForResult(Activity.java:3424)
android.app.Activity.startActivityForResult(Activity.java:3385)
android.app.Activity.startActivity(Activity.java:3627)
android.app.Activity.startActivity(Activity.java:3595)
kr.co.iosystem.blackeyeonandroid.BlackEyeActivity.netCheckAutoUpdate(BlackEyeActivity.java:479)
kr.co.iosystem.blackeyeonandroid.BlackEyeActivity.onCreate(BlackEyeActivity.java:147)
android.app.Activity.performCreate(Activity.java:5231)
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148) E/AndroidRuntime( 2678):     ... 11 more

and My code.

protected static Context mainContext =null;

@Override   
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main);
netCheckAutoUpdate();   //NullPointerException 
}



public void netCheckAutoUpdate() {
ConnectivityManager connectivityManager = (ConnectivityManager)   this.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ethernet = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_ETHERNET);
NetworkInfo wifi = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

if (wifi.isConnected()) {
        Intent intent = mainContext.getPackageManager().getLaunchIntentForPackage("package name");
        startActivity(intent);    //NullPointerException

} else if (ethernet.isConnected()) {
        Intent intent = mainContext.getPackageManager().getLaunchIntentForPackage("package name");
        startActivity(intent);     //NullPointerException


} else {
        Intent intent = mainContext.getPackageManager().getLaunchIntentForPackage("package name");
        startActivity(intent);    //NullPointerException


}
}

perhaps, I must use null check?

if this correct, how use null check? mainContext is global variable

when I connect wifi. occur NullPointerException this part

  NetworkInfo wifi = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

  if (wifi.isConnected()) {
        Intent intent =         mainContext.getPackageManager().getLaunchIntentForPackage("kr.co.iosystem.be_update");
        startActivity(intent);

  }

in other word,

 `startActivity(intent)` here occur NullPointerException.

I proper permission from manifest.

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
chohyunwook
  • 411
  • 1
  • 5
  • 18

1 Answers1

0

Your mainContext is null and cannot get package cause mainContext doesnt have ur context.

try use getContext() / this or if u use fragment getActivity().

For more info context : https://developer.android.com/reference/android/content/Context.html

Difference between getContext() , getApplicationContext() , getBaseContext() and "this"

Community
  • 1
  • 1
Code21K
  • 74
  • 2