[
https://issues.apache.org/jira/browse/CB-10472?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15158674#comment-15158674
]
Stéphane Péchard commented on CB-10472:
---------------------------------------
@[~riknoll] I have the same bug with the following use case: adding a Google
SignIn process in the app.
It works well when loadUrl() is called in the onCreate() callback, but if I
defer it when the SignIn process is done (successfully or not), I get this
crash.
IMHO it is not such an exotic use case. As a workaround, I guess I could load a
temporary url through loadUrl() in the onCreate(), then recall it when it is
done, but it is a bit surprising to get such a NPE here.
> 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
> Assignee: Carlos Santana
> Labels: android, regression, triaged
>
> 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]