Google Firebase Analytics插件适用于Unity游戏引擎。

3
谷歌最近推出了适用于 iOS 和 Android 的 Firebase 分析工具,这很棒!我想在我的 Unity3D 5.4b19 制作的 Android 游戏中使用它。我尝试按照这个链接在 Android Studio 中构建插件:link。我已经成功地构建了 jar 文件,并将其导入到 Unity 中,并生成了一个 apk 文件。但是当我尝试初始化 Firebase 分析工具时,出现以下错误:
AndroidJavaException: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/firebase/analytics/FirebaseAnalytics;

java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/firebase/analytics/FirebaseAnalytics;

这里是我从Android Studio中的主要活动类

import android.content.Intent;
import android.os.Bundle;
import android.view.MenuItem;
import com.unity3d.player.UnityPlayerActivity;
import com.google.firebase.analytics.FirebaseAnalytics;

public class MainActivity extends UnityPlayerActivity {
    private FirebaseAnalytics mFirebaseAnalytics;

    public void init() {
        // [START shared_app_measurement]
        // Obtain the FirebaseAnalytics instance.
        mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
        // [END shared_app_measurement]
    }

    public void setUserProperty(String Property, String value) {
        // [START user_property]
        mFirebaseAnalytics.setUserProperty(Property, value);
        // [END user_property]
    }

    public void logCustomEvent(MenuItem item) {
        // [START custom_event]
        Bundle params = new Bundle();
        params.putString("image_name", "name");
        params.putString("full_text", "text");
        mFirebaseAnalytics.logEvent("share_image", params);
        // [END custom_event]
    }

    public void logEvent(String id, String name, String type) {
        // [START image_view_event]
        Bundle bundle = new Bundle();
        bundle.putString(FirebaseAnalytics.Param.ITEM_ID, id);
        bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, name);
        bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, type);
        mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle);
        // [END image_view_event]
    }

    public void shareText(String subject, String body) {
        Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
        sharingIntent.setType("text/plain");
        sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
        sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, body);
        startActivity(Intent.createChooser(sharingIntent, "Share via"));
    }
}

我理解这不起作用是因为它找不到Firebase类。我不知道如何在我的项目中包含这些文件。我已经尝试查找Firebase分析的jar文件,但没有找到。


我需要尝试一下才能确定,但你需要从firebase-analytics.aar和它的依赖项中获取类。这应该是可能的,但需要花费一些精力来正确设置所有内容。 - djabi
我建议现在使用官方的 SDK https://firebase.google.com/docs/unity/setup - stewartmiles
2个回答

4

更新日期:2016年11月31日

现在你可以通过这个UnityPackage实现

我从SDK文件夹中提取了所有必需的jar文件。它们都在Extra文件夹里。现在它完美地工作了。

更新:有几个人要求我发布整个过程。所以这里是我在Unity中让Firebase工作的概述。这些基本上是我在记录过程中拍摄的快照。

输入图像描述

输入图像描述

输入图像描述

输入图像描述

输入图像描述

输入图像描述

输入图像描述

输入图像描述

输入图像描述

输入图像描述

输入图像描述

如果找不到它们,请从这里下载jar文件

我希望这些信息足以让您开始了解。如果您需要其他信息,请留言。


0

您需要将这些文件添加到插件/安卓文件夹中:http://joxi.ru/Q2KeQD7C3zdYrj。之后,您的SDK将正常工作。

P.S. 我不明白为什么日志事件不起作用,也许需要等待。我认为,谷歌JSON文件将设置应用程序,但SDK模块的包名称和Unity应用程序包名称需要相等。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接