События приложения Flutter facebook: свойство lateinit anonymousId не было инициализировано

Я пытаюсь вызвать события приложения Facebook в своем проекте flutter. Я использую зависимость facebook_app_events: ^0.12.0 . метаданные также добавляются в файл манифеста.

          <meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="@string/facebook_app_id" />


void callFBEvent() async {
    try {
      var i = await facebookAppEvents.getAnonymousId();
      await facebookAppEvents.setAdvertiserTracking(enabled: true);
      await facebookAppEvents.logEvent(
          name: "User_Selection_Screen", parameters: {
        "User_Selection": "User_Selection",
      });
      print("facebook event success User_Selection_Screen");
    }catch(e){
      print(e);
    }
  }

Ошибка ниже

      kotlin.UninitializedPropertyAccessException: lateinit property anonymousId has not been initialized
    at id.oddbit.flutter.facebook_app_events.FacebookAppEventsPlugin.handleGetAnonymousId(FacebookAppEventsPlugin.kt:82)
    at id.oddbit.flutter.facebook_app_events.FacebookAppEventsPlugin.onMethodCall(FacebookAppEventsPlugin.kt:55)
    at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:233)
    at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:84)
    at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:822)
    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:7386)
    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:980)

3 ответа

В моем случае проблема заключалась в том, что я вставил метаданные под тегом активности, а не под тегом приложения.

              <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>

Открываю проект в модуле андроид. Затем сначала очистите сборку проекта, а затем просто соберите и синхронизируйте Gradle в модуле Android. тогда вопрос был решен. Но я уже использовал pub get много времени до этого, но это не сработало. хорошо, моя проблема решена.

Таким образом, решение состояло в том, чтобы поставить:

      <meta-data android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id"/>
<meta-data android:name="com.facebook.sdk.ClientToken"
android:value="@string/facebook_client_token"/>

в нужном месте они должны быть под тегом приложения, в первом диапазоне, поэтому не под приложением, а затем тегом активности прямо под тегом приложения в androidManifest, как на рисунке ниже!введите описание изображения здесь

Другие вопросы по тегам