Android Unity Firebase引发异常ApplicationException:internal::IsInitialized()

Android Unity Firebase引发异常ApplicationException:internal::IsInitialized(),android,firebase,unity3d,firebase-invites,Android,Firebase,Unity3d,Firebase Invites,我正在尝试将Firebase邀请添加到我的Unity游戏中。我已经完成了所有的教程步骤,并且已经设置好了一切。但是,当我尝试运行教程中的代码来发送邀请时,我遇到了一个异常: ApplicationException: internal::IsInitialized() at Firebase.FutureBase.status () at Firebase.Invites.SendInviteFuture.GetTask (Firebase.Invites.SendInviteFuture

我正在尝试将Firebase邀请添加到我的Unity游戏中。我已经完成了所有的教程步骤,并且已经设置好了一切。但是,当我尝试运行教程中的代码来发送邀请时,我遇到了一个异常:

ApplicationException: internal::IsInitialized()
 at Firebase.FutureBase.status ()
 at Firebase.Invites.SendInviteFuture.GetTask (Firebase.Invites.SendInviteFuture fu)
 at Firebase.Invites.FirebaseInvites.SendInviteAsync (Firebase.Invites.Invite invite)
...
代码是:

void Start()
{
    Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task =>
    {
        dependencyStatus = task.Result;
        if (dependencyStatus == Firebase.DependencyStatus.Available)
            InitializeFirebase();
        else
            Debug.LogError("Could not resolve all Firebase dependencies: " + dependencyStatus);
    });
}

void InitializeFirebase()
{
    Firebase.Invites.FirebaseInvites.InviteReceived += OnInviteReceived;
    Firebase.Invites.FirebaseInvites.InviteNotReceived += OnInviteNotReceived;
    Firebase.Invites.FirebaseInvites.ErrorReceived += OnErrorReceived;
}

public void ShowInviteBox(System.Action<bool> callback)
{
  var invite = new Firebase.Invites.Invite() {
    TitleText = "Invites Test App",
    MessageText = "Please try my app! It's awesome.",
    CallToActionText = "Download it for FREE",
    DeepLinkUrl = new System.Uri("http://google.com/abc")
  };
  Firebase.Invites.FirebaseInvites.SendInviteAsync(invite).ContinueWith(HandleSentInvite);
}
void Start()
{
Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(任务=>
{
dependencyStatus=task.Result;
if(dependencyStatus==Firebase.dependencyStatus.Available)
初始化REBASE();
其他的
Debug.LogError(“无法解析所有Firebase依赖项:“+dependencyStatus”);
});
}
void initializefrebase()
{
Firebase.Invites.FirebaseInvites.InviteReceived+=OnInviteReceived;
Firebase.invests.firebaseInvests.InviteNotReceived+=OnInviteNotReceived;
Firebase.invests.firebaseInvests.ErrorReceived+=OnErrorReceived;
}
public void ShowInviteBox(System.Action回调)
{
var invite=new Firebase.Invites.invite(){
TitleText=“邀请测试应用程序”,
MessageText=“请试用我的应用程序!太棒了。”,
CallToActionText=“免费下载”,
DeepLinkUrl=new System.Uri(“http://google.com/abc")
};
Firebase.Invites.FirebaseInvites.SendInviteAsync(invite).ContinueWith(HandleSentInvite);
}
我使用:

  • Unity 2017.3.0f3
  • 适用于Unity 0.9.50的Google Play游戏服务插件
  • Firebase 4.4.3
  • Appodel 2.8.18 nodex
  • 游戏分析3.10.4

任何帮助都将不胜感激

我想我找到了解决办法

在firebase初始化之前使用“SendEvent()”时会发生此错误

我用下面的代码解决了这个错误

private void InitializeFirebase()
{
    Debug.Log("FirebaseManager : Enabling data collection.");
    FirebaseAnalytics.SetAnalyticsCollectionEnabled(true);

    Debug.Log("FirebaseManager : Set user properties.");
    // Set the user's sign up method.
    FirebaseAnalytics.SetUserProperty(
      FirebaseAnalytics.UserPropertySignUpMethod,
      "Google");
    // Set the user ID.
    FirebaseAnalytics.SetUserId("uber_user_510");
    // Set default session duration values.
    FirebaseAnalytics.SetMinimumSessionDuration(new TimeSpan(0, 0, 10));
    FirebaseAnalytics.SetSessionTimeoutDuration(new TimeSpan(0, 30, 0));

    //THIS IS SOLUTION!!!!
    Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => 
    {
        FirebaseAnalytics.LogEvent(FirebaseAnalytics.EventLogin);
    });
}
在CheckAndFixDependenciesAsync()中输入第一个“SendEvent”

希望这是有帮助的


在我找到并安装了firebase的旧版本(6.15.2)之后, firebase的旧版本向我显示了一条有用的错误消息


“在检查依赖项完成之前不要调用firebase函数”

在实施FirebaseAnalytics时,我在iOS上遇到了文档中未提及的问题-我必须添加以下行:FirebaseAnalytics.SetAnalyticsCollectionEnabled(true);也许在邀请函包中有类似的东西你需要提前打电话?谢谢你的帮助!到目前为止,我发现Appodeal插件与Firebase邀请插件之间存在某种干扰(可能是因为使用了一些不同版本的google API)。Appodeal支持部门正在努力帮助解决此问题。嗨,Alex,这方面有什么进展吗?我没有使用Appodel(只是Admob使用官方软件包),并且有相同的错误。如果你能设法解决这个问题,请告诉我。嘿,皮奥特。在与这个麻烦斗争了好几个小时后,我不得不放弃。对于最新版本的Firebase,错误看起来有所不同,但仍然不起作用。来自Appodeal support的人尽了最大的努力,但运气不佳。看来,我们应该把这个问题交给Firebase开发者解决。不幸的是,我花了太多时间在这台故障自动取款机上。如果你能找到任何解决方案,我将不胜感激,如果你能与我分享的话。Alex-仅供参考,我通过建立一个Android Studio项目成功地实现了这一切。有一些麻烦让它工作,但最终请做的工作。我相信Unity中的Android构建过程遗漏了一些库。