加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何在Xmarin.Android应用程序中使用Flurry Analytics(.ja

发布时间:2020-12-15 22:09:57 所属栏目:百科 来源:网络整理
导读:我想在我的Xamarin应用程序中使用Flurry.为此,我需要使用Flurry Analytics for Android,这是一个.jar文件. 为此,我创建了Bindings Library,并将FlurryAnalytics-4.2.0.jar作为InputJar包含在内.但是在建造之后我得到了这个错误: Com.Flurry.Sdk.Eg' already
我想在我的Xamarin应用程序中使用Flurry.为此,我需要使用Flurry Analytics for Android,这是一个.jar文件.

为此,我创建了Bindings Library,并将FlurryAnalytics-4.2.0.jar作为InputJar包含在内.但是在建造之后我得到了这个错误:

Com.Flurry.Sdk.Eg' already defines a member called 'A' with the same parameter types

事实上,Binding Library生成两个名为’A’的方法,这些方法具有相同的参数但内部具有不同的代码.

删除其中一个方法manully不起作用.
向Metadata.xml文件添加特殊行可能会重命名方法,但至少需要其中一种方法(我不知道哪一种方法).

有谁知道我怎么能解决这个问题?

解决方法

这是现成的解决方案,干杯!

class Flurry
{
    public const string ApiKeyValue = "YOUR_API_KEY";

    private readonly IntPtr _flurryClass;

    private readonly IntPtr _flurryOnStartSession;
    private readonly IntPtr _flurryOnEndSession;
    private readonly IntPtr _flurrySetContinueSessionMillis;

    public Flurry()
    {
        _flurryClass = JNIEnv.FindClass("com/flurry/android/FlurryAgent");

        _flurryOnStartSession = JNIEnv.GetStaticMethodID(_flurryClass,"onStartSession","(Landroid/content/Context;Ljava/lang/String;)V");
        _flurryOnEndSession = JNIEnv.GetStaticMethodID(_flurryClass,"onEndSession","(Landroid/content/Context;)V");
        _flurrySetContinueSessionMillis = JNIEnv.GetStaticMethodID(_flurryClass,"setContinueSessionMillis","(J)V"); 
    }

    public void OnStartActivity(Activity activity)
    {
        try
        {
            JNIEnv.CallStaticVoidMethod(_flurryClass,_flurryOnStartSession,new JValue(activity),new JValue(new Java.Lang.String(ApiKeyValue)));
        }
        catch (Exception) { }
    }

    public void OnStopActivity(Activity activity)
    {
        try
        {
            JNIEnv.CallStaticVoidMethod(_flurryClass,_flurryOnEndSession,new JValue(activity));
        }
        catch (Exception) { }
    }

    public void setContinueSessionMillis(long millis)
    {
        try
        {
            JNIEnv.CallStaticVoidMethod(_flurryClass,_flurrySetContinueSessionMillis,new JValue(millis));
        }
        catch (Exception) { }
    }

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读