NativeScript / NativeScript/plugins

[@nativescript/google-signin] Google Sign In crashing after 8.5 migration

Open
#475 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
TypeScript
Stars
206
Forks
123
Avg merge
2d 1h
Merged PRs (30d)
1

Description

I have recently started migrating to NativeScript 8.5.0 and Angular 15.2.1. After the migration, some stuff broke, including the Google Signin plugin. Every time I try to Log in, this error appears:

An uncaught Exception occurred on "main" thread.
Calling js method onSuccess failed
Error: java.lang.NoSuchMethodError: no non-static method "Lorg/nativescript/plugins/googlesignin/GoogleSignIn$GoogleUser;.getUser()L;"

StackTrace:
onSuccess(file:///data/data/org.nativescript.demoapp/files/app/vendor.js:76427:52)
	at com.tns.Runtime.callJSMethodNative(Native Method)
	at com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1302)
	at com.tns.Runtime.callJSMethodImpl(Runtime.java:1188)
	at com.tns.Runtime.callJSMethod(Runtime.java:1175)
	at com.tns.Runtime.callJSMethod(Runtime.java:1153)
	at com.tns.Runtime.callJSMethod(Runtime.java:1149)
	at com.tns.gen.org.nativescript.plugins.googlesignin.GoogleSignIn_Callback.onSuccess(GoogleSignIn_Callback.java:19)
	at org.nativescript.plugins.googlesignin.GoogleSignIn$Companion.signInSilently$lambda-3$lambda-1(GoogleSignIn.kt:185)
	at org.nativescript.plugins.googlesignin.GoogleSignIn$Companion.$r8$lambda$fH8L5lqFEywsPPnOtZDYuEPDXBs(Unknown Source:0)
	at org.nativescript.plugins.googlesignin.GoogleSignIn$Companion$$ExternalSyntheticLambda12.run(Unknown Source:4)
	at android.os.Handler.handleCallback(Handler.java:938)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loopOnce(Looper.java:210)
	at android.os.Looper.loop(Looper.java:299)
	at android.app.ActivityThread.main(ActivityThread.java:8280)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:576)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1073)
Caused by: java.lang.NoSuchMethodError: no non-static method "Lorg/nativescript/plugins/googlesignin/GoogleSignIn$GoogleUser;.getUser()L;"
	... 18 more

The code I'm using to Log in has been unchanged for a long time and it's the following:

async googleLogin(): Promise<void> {
   console.log("Signing in with google");
   this.processing = true;
   if (await GoogleSignin.playServicesAvailable()) {
      try {
         const googleUser: GoogleUser = await this.authService.googleSignin();
         console.dir(googleUser);
      }
   }
} 

Both of those console.log don't print anything atm, not sure why... I can't open devtools either.

Everything worked fine with the previous CLI version, Angular 14 and @nativescript/android@8.3.1

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the crash with the NativeScript 8.5.0, Angular 15.2.1, and @nativescript/android@8.3.1 setup described. Trace the GoogleSignin flow from authService.googleSignin() and the googleLogin() entry point into GoogleSignIn.kt around line 185, using the vendor.js stack trace as a reference. Done means Google sign-in completes without the reported NoSuchMethodError.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, angular, typescript
Domain
authentication, mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.