oddbit / flutter_facebook_app_events

Flutter Plugin for Facebook App Events
https://pub.dev/packages/facebook_app_events
Apache License 2.0
119 stars 296 forks source link

[Bug]: The SDK has not been initialized (on Android) #332

Closed wobfan closed 4 months ago

wobfan commented 5 months ago

Is there an existing issue for this?

Current Behavior

Getting an exception at the start of the app, that the SDK has to be initialized first.

E/GeneratedPluginRegistrant(14560): Error registering plugin facebook_app_events, id.oddbit.flutter.facebook_app_events.FacebookAppEventsPlugin
E/GeneratedPluginRegistrant(13959): The SDK has not been initialized, make sure to call FacebookSdk.sdkInitialize() first.
E/GeneratedPluginRegistrant(13959):     at com.facebook.internal.Validate.sdkInitialized(Validate.kt:117)
E/GeneratedPluginRegistrant(13959):     at com.facebook.appevents.AppEventsLoggerImpl.<init>(AppEventsLoggerImpl.kt:634)
E/GeneratedPluginRegistrant(13959):     at com.facebook.appevents.AppEventsLoggerImpl.<init>(AppEventsLoggerImpl.kt:72)
E/GeneratedPluginRegistrant(13959):     at com.facebook.appevents.AppEventsLogger.<init>(AppEventsLogger.kt:106)
E/GeneratedPluginRegistrant(13959):     at com.facebook.appevents.AppEventsLogger.<init>(Unknown Source:0)
E/GeneratedPluginRegistrant(13959):     at com.facebook.appevents.AppEventsLogger$Companion.newLogger(AppEventsLogger.kt:357)
E/GeneratedPluginRegistrant(13959):     at id.oddbit.flutter.facebook_app_events.FacebookAppEventsPlugin.onAttachedToEngine(FacebookAppEventsPlugin.kt:34)
E/GeneratedPluginRegistrant(13959):     at io.flutter.embedding.engine.FlutterEngineConnectionRegistry.add(FlutterEngineConnectionRegistry.java:146)
E/GeneratedPluginRegistrant(13959):     at io.flutter.plugins.GeneratedPluginRegistrant.registerWith(GeneratedPluginRegistrant.java:19)
E/GeneratedPluginRegistrant(13959):     at java.lang.reflect.Method.invoke(Native Method)
E/GeneratedPluginRegistrant(13959):     at io.flutter.embedding.engine.plugins.util.GeneratedPluginRegister.registerGeneratedPlugins(GeneratedPluginRegister.java:80)
E/GeneratedPluginRegistrant(13959):     at io.flutter.embedding.engine.FlutterEngine.<init>(FlutterEngine.java:381)
E/GeneratedPluginRegistrant(13959):     at io.flutter.embedding.engine.FlutterEngine.<init>(FlutterEngine.java:284)
E/GeneratedPluginRegistrant(13959):     at io.flutter.embedding.engine.FlutterEngine.<init>(FlutterEngine.java:265)
E/GeneratedPluginRegistrant(13959):     at io.flutter.embedding.engine.FlutterEngine.<init>(FlutterEngine.java:245)
E/GeneratedPluginRegistrant(13959):     at io.flutter.embedding.engine.FlutterEngine.<init>(FlutterEngine.java:165)
E/GeneratedPluginRegistrant(13959):     at io.flutter.plugins.firebase.messaging.FlutterFirebaseMessagingBackgroundExecutor.lambda$startBackgroundIsolate$0$io-flutter-plugins-firebase-messaging-FlutterFirebaseMessagingBackgroundExecutor(FlutterFirebaseMessagingBackgroundExecutor.java:167)
E/GeneratedPluginRegistrant(13959):     at io.flutter.plugins.firebase.messaging.FlutterFirebaseMessagingBackgroundExecutor$$ExternalSyntheticLambda0.run(Unknown Source:8)
E/GeneratedPluginRegistrant(13959):     at android.os.Handler.handleCallback(Handler.java:907)
E/GeneratedPluginRegistrant(13959):     at android.os.Handler.dispatchMessage(Handler.java:105)
E/GeneratedPluginRegistrant(13959):     at android.os.Looper.loop(Looper.java:216)
E/GeneratedPluginRegistrant(13959):     at android.app.ActivityThread.main(ActivityThread.java:7625)
E/GeneratedPluginRegistrant(13959):     at java.lang.reflect.Method.invoke(Native Method)
E/GeneratedPluginRegistrant(13959):     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
E/GeneratedPluginRegistrant(13959):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)

When trying to send an event, this also fails:

E/flutter (14469):  at id.oddbit.flutter.facebook_app_events.FacebookAppEventsPlugin.handleGetAnonymousId(FacebookAppEventsPlugin.kt:101)
E/flutter (14469):  at id.oddbit.flutter.facebook_app_events.FacebookAppEventsPlugin.onMethodCall(FacebookAppEventsPlugin.kt:54)
E/flutter (14469):  at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:267)
E/flutter (14469):  at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:295)
E/flutter (14469):  at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:322)
E/flutter (14469):  at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(Unknown Source:12)
E/flutter (14469):  at android.os.Handler.handleCallback(Handler.java:907)
E/flutter (14469):  at android.os.Handler.dispatchMessage(Handler.java:105)
E/flutter (14469):  at android.os.Looper.loop(Looper.java:216)
E/flutter (14469):  at android.app.ActivityThread.main(ActivityThread.java:7625)
E/flutter (14469):  at java.lang.reflect.Method.invoke(Native Method)
E/flutter (14469):  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
E/flutter (14469):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)
E/flutter (14469): )
E/flutter (14469): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:651:7)
E/flutter (14469): #1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:322:18)
E/flutter (14469): <asynchronous suspension>

Expected Behavior

The Facebook SDK initializes successfully and I'm able to send events.

Steps To Reproduce

  1. flutter pub add facebook_app_events
  2. Add Meta data to AndroidManifest.xml and Info.plist as described in https://pub.dev/packages/facebook_app_events#setting-things-up.
  3. Start app on Android.

Platform

Android

Flutter Doctor

>_ flutter doctor -v
[✓] Flutter (Channel stable, 3.16.4, on macOS 14.2 23C64 darwin-arm64, locale en-DE)
    • Flutter version 3.16.4 on channel stable at /opt/homebrew/Caskroom/flutter/3.3.4/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 2e9cb0aa71 (3 weeks ago), 2023-12-11 14:35:13 -0700
    • Engine revision 54a7145303
    • Dart version 3.2.3
    • DevTools version 2.28.4

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    • Android SDK at /Users/wobbe/Library/Android/sdk
    • Platform android-33, build-tools 33.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15A507
    • CocoaPods version 1.14.3

[✓] Chrome - develop for the web
    • CHROME_EXECUTABLE = /opt/homebrew/bin/chromium

[✓] Android Studio (version 2022.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] VS Code (version 1.85.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.80.0

[✓] Connected device (4 available)
    • ANE LX1 (mobile)        • 9WVDU18924002637          • android-arm64  • Android 9 (API 28)
    • Stefans iPhone (mobile) • 00008101-00167D091122001E • ios            • iOS 17.2.1 21C66
    • macOS (desktop)         • macos                     • darwin-arm64   • macOS 14.2 23C64 darwin-arm64
    • Chrome (web)            • chrome                    • web-javascript • Chromium 109.0.5407.0

[✓] Network resources
    • All expected network resources are available.

• No issues found!
wobfan commented 4 months ago

Has been solved. Although I am sure that I checked it, it seems that I moved the meta-data tags inside of the activity section, while it must be inside the application section in AndroidManifest.xml.