Carlos Santana created CB-10472:
-----------------------------------

             Summary: NullPointerException: Attempt to invoke virtual method 
'android.os.Bundle org.apache.cordova.PluginManager.onSaveInstanceState
                 Key: CB-10472
                 URL: https://issues.apache.org/jira/browse/CB-10472
             Project: Apache Cordova
          Issue Type: Bug
          Components: Android
    Affects Versions: 5.1.0
         Environment: cordova-android 5.1.0
            Reporter: Carlos Santana


pluginManager not being check for null before using it in CordovaInterfaceImpl

01-28 14:24:10.396  27684-27684/io.cordova.hellocordova E/AndroidRuntime﹕ FATAL 
EXCEPTION: main
    Process: io.cordova.hellocordova, PID: 27684
    java.lang.NullPointerException: Attempt to invoke virtual method 
'android.os.Bundle org.apache.cordova.PluginManager.onSaveInstanceState()' on a 
null object reference
            at 
org.apache.cordova.CordovaInterfaceImpl.onSaveInstanceState(CordovaInterfaceImpl.java:173)
            at 
org.apache.cordova.CordovaActivity.onSaveInstanceState(CordovaActivity.java:465)
            at android.app.Activity.performSaveInstanceState(Activity.java:1298)
            at 
android.app.Instrumentation.callActivityOnSaveInstanceState(Instrumentation.java:1288)
            at 
android.app.ActivityThread.callCallActivityOnSaveInstanceState(ActivityThread.java:3958)
            at 
android.app.ActivityThread.performStopActivityInner(ActivityThread.java:3369)
            at 
android.app.ActivityThread.handleStopActivity(ActivityThread.java:3425)
            at android.app.ActivityThread.access$1100(ActivityThread.java:151)
            at 
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1332)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5254)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

Recreate
cordova create testapp
cd testapp
cordova platform add [email protected]

Modify MainActivity to launch a second Cordova Activity like this:
change MainActivity.java
Notice no init or loadUrl called, this is on purpose in our App for this use 
case we want to avoid this, and let the second Activity to call loadUrl

public class MainActivity extends CordovaActivity
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
    }
    @Override
    protected void onStart(){
        super.onStart();
        Intent newActivity = new Intent(this, MainActivity2.class);
        startActivity(newActivity);

    }
}

Add class io.cordova.hellocordova.MainActivity2.java
public class MainActivity2 extends CordovaActivity
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        // Set by <content src="index.html" /> in config.xml
        loadUrl(launchUrl);
    }
}

Add activity to AndroidManifest.xml
<activity android:name="io.cordova.hellocordova.MainActivity2" />

Since init() or loadUrl was never called in MainActivity, pluginManager never 
got created, this let pluginManager be null






--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to