MR.*_*DAV 5 android flutter aws-amplify flutteramplify
我在我的 Flutter 应用程序中使用 AWS 的 Amplify Auth 的注册功能。当我在 Android Studio 中运行代码并在模拟器/手机上测试时,该功能运行良好。我可以向 Cognito 添加新用户并验证该用户。
但是,当我构建 APK 并尝试在同一个模拟器/手机上运行该 APK 时,注册功能在 logcat 中引发了一些错误,并且注册在调试期间无法正常工作。我不明白为什么当我通过 Android Studio 测试我的代码时不会发生这个错误。
这是错误:
2020-10-28 07:05:27.554 14035-14035/? E/MethodChannel#com.amazonaws.amplify/auth_cognito: Failed to handle method call
e.d: null cannot be cast to non-null type java.lang.reflect.Method
at com.amazonaws.amplify.amplify_auth_cognito.types.FlutterSignUpRequest.a(Unknown Source:203)
at com.amazonaws.amplify.amplify_auth_cognito.types.FlutterSignUpRequest.<init>(Unknown Source:96)
at com.amazonaws.amplify.amplify_auth_cognito.AuthCognito.i(Unknown Source:10)
at com.amazonaws.amplify.amplify_auth_cognito.AuthCognito.a(Unknown Source:150)
at d.a.b.a.j$a.a(Unknown Source:17)
at io.flutter.embedding.engine.e.b.a(Unknown Source:57)
at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(Unknown Source:4)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:336)
at android.os.Looper.loop(Looper.java:174)
at android.app.ActivityThread.main(ActivityThread.java:7397)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:935)
2020-10-28 07:05:27.556 14035-14063/? E/flutter: [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: NoSuchMethodError: The method 'forEach' was called on null.
Receiver: null
Tried calling: forEach(Closure: (dynamic, dynamic) => Set<Set<dynamic>>)
#0 Object.noSuchMethod (dart:core-patch/object_patch.dart:51)
#1 AmplifyAuthCognitoMethodChannel._throwError (package:amplify_auth_cognito/method_channel_auth_cognito.dart:330)
#2 AmplifyAuthCognitoMethodChannel.signUp (package:amplify_auth_cognito/method_channel_auth_cognito.dart:40)
<asynchronous suspension>
#3 AmplifyAuthCognito.signUp (package:amplify_auth_cognito/amplify_auth_cognito.dart:45)
<asynchronous suspension>
#4 _State._registerUser (package:confab_app/SignUp_Screen.dart:36)
<asynchronous suspension>
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
2020-10-28 07:05:27.554 14035-14035/? E/MethodChannel#com.amazonaws.amplify/auth_cognito: Failed to handle method call
e.d: null cannot be cast to non-null type java.lang.reflect.Method
at com.amazonaws.amplify.amplify_auth_cognito.types.FlutterSignUpRequest.a(Unknown Source:203)
at com.amazonaws.amplify.amplify_auth_cognito.types.FlutterSignUpRequest.<init>(Unknown Source:96)
at com.amazonaws.amplify.amplify_auth_cognito.AuthCognito.i(Unknown Source:10)
at com.amazonaws.amplify.amplify_auth_cognito.AuthCognito.a(Unknown Source:150)
at d.a.b.a.j$a.a(Unknown Source:17)
at io.flutter.embedding.engine.e.b.a(Unknown Source:57)
at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(Unknown Source:4)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:336)
at android.os.Looper.loop(Looper.java:174)
at android.app.ActivityThread.main(ActivityThread.java:7397)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:935)
2020-10-28 07:05:27.556 14035-14063/? E/flutter: [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: NoSuchMethodError: The method 'forEach' was called on null.
Receiver: null
Tried calling: forEach(Closure: (dynamic, dynamic) => Set<Set<dynamic>>)
#0 Object.noSuchMethod (dart:core-patch/object_patch.dart:51)
#1 AmplifyAuthCognitoMethodChannel._throwError (package:amplify_auth_cognito/method_channel_auth_cognito.dart:330)
#2 AmplifyAuthCognitoMethodChannel.signUp (package:amplify_auth_cognito/method_channel_auth_cognito.dart:40)
<asynchronous suspension>
#3 AmplifyAuthCognito.signUp (package:amplify_auth_cognito/amplify_auth_cognito.dart:45)
<asynchronous suspension>
#4 _State._registerUser (package:confab_app/SignUp_Screen.dart:36)
<asynchronous suspension>
Run Code Online (Sandbox Code Playgroud)
问题在于R8删除一些amplify 的文件。proguard_rules.pro在文件中包含以下两项检查
-keep class com.amazonaws.** { *; }
-keep class com.amplifyframework.** { *; }
Run Code Online (Sandbox Code Playgroud)
请注意:此错误仅出现在没有no-shrink标志的发布 apk 版本中。
| 归档时间: |
|
| 查看次数: |
1067 次 |
| 最近记录: |