Onesignal-flutter-sdk: App crashes when using SetExternalUserId in flutter

Created on 12 Aug 2020  路  11Comments  路  Source: OneSignal/OneSignal-Flutter-SDK

When i try to use SetExternalUserId in flutter my app getting crashed.

Description:

  1. String _externalUserId='ABC123';
  2. Called the _handleSetExternalUserId(); in init()
  3. void _handleSetExternalUserId() {
    print("Setting external user ID");
    OneSignal.shared.setExternalUserId(_externalUserId).then((results) {
    if (results == null) return;}

Environment

  1. What version of the OneSignal Flutter SDK are you using: ^2.6.0

Anything else:

(crash stacktraces,)

Rejecting re-init on previously-failed class java.lang.Class: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/onesignal/OneSignal$OSExternalUserIdUpdateCompletionHandler;
I/le.checkboxtes(26054): at void com.onesignal.flutter.OneSignalPlugin.registerWith(io.flutter.plugin.common.PluginRegistry$Registrar) (OneSignalPlugin.java:57)
I/le.checkbox(26054): at void io.flutter.plugins.GeneratedPluginRegistrant.registerWith(io.flutter.plugin.common.PluginRegistry) (GeneratedPluginRegistrant.java:43)
I/le.checkbox(26054): at void com.example.checkboxtest.MainActivity.onCreate(android.os.Bundle) (MainActivity.kt:11)
I/le.checkbox(26054): at void android.app.Activity.performCreate(android.os.Bundle, android.os.PersistableBundle) (Activity.java:7458)
I/le.checkbox(26054): at void android.app.Activity.performCreate(android.os.Bundle) (Activity.java:7448)
I/le.checkbox(26054): at void android.app.Instrumentation.callActivityOnCreate(android.app.Activity, android.os.Bundle) (Instrumentation.java:1286)
I/le.checkbox(26054): at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:3409)
I/le.checkbox(26054): at android.app.Activity android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.app.servertransaction.PendingTransactionActions, android.content.Intent) (ActivityThread.java:3614)
I/le.checkbox(26054): at void android.app.servertransaction.LaunchActivityItem.execute(android.app.ClientTransactionHandler, android.os.IBinder, android.app.servertransaction.PendingTransactionActions) (LaunchActivityItem.java:86)
I/le.checkbox(26054): at void android.app.servertransaction.TransactionExecutor.executeCallbacks(android.app.servertransaction.ClientTransaction) (TransactionExecutor.java:108)
I/le.checkbox(26054): at void android.app.servertransaction.TransactionExecutor.execute(android.app.servertransaction.ClientTransaction) (TransactionExecutor.java:68)
I/le.checkbox(26054): at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:2199)
I/le.checkbox(26054): at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:112)
I/le.checkbox(26054): at void android.os.Looper.loop() (Looper.java:216)
I/le.checkbox(26054): at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:7625)
I/le.checkbox(26054): at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
I/le.checkbox(26054): at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:524)
I/le.checkbox(26054): at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:987)
I/le.checkbox(26054): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.onesignal.OneSignal$OSExternalUserIdUpdateCompletionHandler" on path: DexPathList[[zip file "/data/app/com.example.checkbox-TS52Mu_nlqq5rdfYBG8eiA==/base.apk"],nativeLibraryDirectories=[/data/app/com.example.checkbox-TS52Mu_nlqq5rdfYBG8eiA==/lib/arm64, /data/app/com.example.checkbox-TS52Mu_nlqq5rdfYBG8eiA==/base.apk!/lib/arm64-v8a, /system/lib64, /product/lib64]]
I/le.checkboxtes(26054): at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:134)
I/le.checkboxtes(26054): at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
I/le.checkbox(26054): at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
I/le.checkbox(26054): at void com.onesignal.flutter.OneSignalPlugin.registerWith(io.flutter.plugin.common.PluginRegistry$Registrar) (OneSignalPlugin.java:57)
I/le.checkbox(26054): at void io.flutter.plugins.GeneratedPluginRegistrant.registerWith(io.flutter.plugin.common.PluginRegistry) (GeneratedPluginRegistrant.java:43)
I/le.checkbox(26054): at void com.example.checkbox.MainActivity.onCreate(android.os.Bundle) (MainActivity.kt:11)
I/le.checkbox(26054): at void android.app.Activity.performCreate(android.os.Bundle, android.os.PersistableBundle) (Activity.java:7458)
I/le.checkbox(26054): at void android.app.Activity.performCreate(android.os.Bundle) (Activity.java:7448)
I/le.checkbox(26054): at void android.app.Instrumentation.callActivityOnCreate(android.app.Activity, android.os.Bundle) (Instrumentation.java:1286)
I/le.checkbox(26054): at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:3409)
I/le.checkbox(26054): at android.app.Activity android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.app.servertransaction.PendingTransactionActions, android.content.Intent) (ActivityThread.java:3614)
I/le.checkbox(26054): at void android.app.servertransaction.LaunchActivityItem.execute(android.app.ClientTransactionHandler, android.os.IBinder, android.app.servertransaction.PendingTransactionActions) (LaunchActivityItem.java:86)
I/le.checkbox(26054): at void android.app.servertransaction.TransactionExecutor.executeCallbacks(android.app.servertransaction.ClientTransaction) (TransactionExecutor.java:108)
I/le.checkbox(26054): at void android.app.servertransaction.TransactionExecutor.execute(android.app.servertransaction.ClientTransaction) (TransactionExecutor.java:68)
I/le.checkbox(26054): at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:2199)
I/le.checkbox(26054): at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:112)
I/le.checkbox(26054): at void android.os.Looper.loop() (Looper.java:216)
I/le.checkbox(26054): at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:7625)
I/le.checkbox(26054): at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
I/le.checkbox(26054): at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:524)
I/le.checkbox(26054): at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:987)
I/le.checkbox(26054):
E/flutter (26054): [ERROR:flutter/shell/platform/android/platform_view_android_jni.cc(39)] java.lang.NoClassDefFoundError: Failed resolution of: Lcom/onesignal/OneSignal$OSExternalUserIdUpdateCompletionHandler;
E/flutter (26054): at com.onesignal.flutter.OneSignalPlugin.registerWith(OneSignalPlugin.java:57)
E/flutter (26054): at io.flutter.plugins.GeneratedPluginRegistrant.registerWith(GeneratedPluginRegistrant.java:43)
E/flutter (26054): at com.example.checkboxtest.MainActivity.onCreate(MainActivity.kt:11)
E/flutter (26054): at android.app.Activity.performCreate(Activity.java:7458)
E/flutter (26054): at android.app.Activity.performCreate(Activity.java:7448)
E/flutter (26054): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1286)
E/flutter (26054): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3409)
E/flutter (26054): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3614)
E/flutter (26054): at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:86)
E/flutter (26054): at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
E/flutter (26054): at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
E/flutter (26054): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2199)
E/flutter (26054): at android.os.Handler.dispatchMessage(Handler.java:112)
E/flutter (26054): at android.os.Looper.loop(Looper.java:216)
E/flutter (26054): at android.app.ActivityThread.main(ActivityThread.java:7625)
E/flutter (26054): at java.lang.reflect.Method.invoke(Native Method)
E/flutter (26054): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
E/flutter (26054): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)
E/flutter (26054): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.onesignal.OneSignal$OSExternalUserIdUpdateCompletionHandler" on path: DexPathList[[zip file "/data/app/com.example.checkbox-TS52Mu_nlqq5rdfYBG8eiA==/base.apk"],nativeLibraryDirectories=[/data/app/com.example.checkbox-TS52Mu_nlqq5rdfYBG8eiA==/lib/arm64, /data/app/com.example.checkbox-TS52Mu_nlqq5rdfYBG8eiA==/base.apk!/lib/arm64-v8a, /system/lib64, /product/lib64]]

Need More Information Possible Bug

Most helpful comment

I have same problem after upgraded to flutter 1.20.2 and onesignal flutter 2.6.0.

Work fine after add implementation to 3.15.0
image

All 11 comments

same problem here, in 2.3.3 work fine, but if I update it the app is crash, i'ts happen in android only, iOS is fine.

I have same problem after upgraded to flutter 1.20.2 and onesignal flutter 2.6.0.

I have same problem after upgraded to flutter 1.20.2 and onesignal flutter 2.6.0.

Work fine after add implementation to 3.15.0
image

I have same problem after upgraded to flutter 1.20.2 and onesignal flutter 2.6.0.

Work fine after add implementation to 3.15.0
image

this really solve the problem, the correctly is update this in official documentacion to onesignal.

After adding implementation to 3.15.0 App not crashing. However the externalID is not updating on the Onesignal dashboard if I set externalID value from my server. But It is updating when i use a constant like String externalID='abc'.

Howdy,
Apologies for the delay. Is this still occurring in version 2.6.1 which uses the native version 3.15.3? @dvnr76 @rodrigorafaeldamaceno
@hoaian09011991

Howdy,
Apologies for the delay. Is this still occurring in version 2.6.1 which uses the native version 3.15.3? @dvnr76 @rodrigorafaeldamaceno
@hoaian09011991

After updated for implementation 3.15.0 the app back worked fine. I am use 2.6.1

@rodrigorafaeldamaceno ,
To be clear, you downgraded the native SDK?

I have same problem, in the One signal version of 2.6.2 with the latest version 1.22.4 of flutter.
but after adding the dependency the problem has been solved.
thanks.

Hey @MuhamadHaydar, just to clarify are you using OneSignal Flutter 2.6.2 version with OneSignal Android 3.15.6 version? Thanks!

Hey @Jeasmine, The problem was solved by using the dependency "com.onesignal:OneSignal:[3.15.0, 3.99.99]" for the android, then I used same dependency, but it was a little wired when I clicked flutter pub upgrade, I got the problem suddenly.
Thank you for your response.

Was this page helpful?
0 / 5 - 0 ratings