NativeScript / NativeScript/plugins
[@nativescript/google-signin] Google Sign In crashing after 8.5 migration
还没有人认领这个 Issue。
- 主要语言
- TypeScript
- 星标
- 206
- 派生
- 123
- 平均合并
- 2 天 1 小时
- 30 天内合并 PR
- 1
描述
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
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
首先,使用所描述的 NativeScript 8.5.0、Angular 15.2.1 和 @nativescript/android@8.3.1 设置重现崩溃。以 vendor.js 堆栈跟踪为参考,从 authService.googleSignin() 和 googleLogin() 入口点开始,跟踪 GoogleSignin 流程到 GoogleSignIn.kt 第 185 行附近。Google 登录在没有出现所报告的 NoSuchMethodError 的情况下完成,即表示完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- android, angular, typescript
- 领域
- authentication, mobile
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 需要澄清
- 新手友好度
- 25/100