Android 如何使用Branch.io指标生成推荐代码?

Android 如何使用Branch.io指标生成推荐代码?,android,referrals,branch.io,Android,Referrals,Branch.io,我正在尝试实现一个引用代码系统,我正在使用Branch.io Metrics库。我面临的问题是文档不好(不起作用),我无法生成代码 文件: 以下是我所采取的步骤,包括添加库 1) 抓起罐子,添加到我的libs文件夹,并将以下内容添加到我的从属关系中 compile files('libs/branch-1.5.9.jar') 2) 在扩展应用程序的应用程序类中,我添加了以下内容 if (DEBUG) { Branch.getAutoTestInstance(this); } else

我正在尝试实现一个引用代码系统,我正在使用Branch.io Metrics库。我面临的问题是文档不好(不起作用),我无法生成代码

文件:

以下是我所采取的步骤,包括添加库

1) 抓起罐子,添加到我的libs文件夹,并将以下内容添加到我的从属关系中

compile files('libs/branch-1.5.9.jar')
2) 在扩展应用程序的应用程序类中,我添加了以下内容

if (DEBUG) {
   Branch.getAutoTestInstance(this);
} else {
    Branch.getAutoInstance(this);
}
<meta-data android:name="io.branch.sdk.BranchKey" android:value="@string/bnc_app_key" />
@Override
protected void onStart() {
    // note that branch is a global variable (Branch branch;)
    if (DEBUG) {
        branch = Branch.getTestInstance(this.getApplicationContext());
    } else {
        branch = Branch.getInstance(this.getApplicationContext());
    }

    branch.initSession(new BranchReferralInitListener() {
        @Override
        public void onInitFinished(JSONObject jsonObject, BranchError branchError) {
            if (branchError == null) {}        

        }, this.getIntent().getData(), this;
     }
3) 在我的AndroidManifest.xml中,我添加了以下内容

if (DEBUG) {
   Branch.getAutoTestInstance(this);
} else {
    Branch.getAutoInstance(this);
}
<meta-data android:name="io.branch.sdk.BranchKey" android:value="@string/bnc_app_key" />
@Override
protected void onStart() {
    // note that branch is a global variable (Branch branch;)
    if (DEBUG) {
        branch = Branch.getTestInstance(this.getApplicationContext());
    } else {
        branch = Branch.getInstance(this.getApplicationContext());
    }

    branch.initSession(new BranchReferralInitListener() {
        @Override
        public void onInitFinished(JSONObject jsonObject, BranchError branchError) {
            if (branchError == null) {}        

        }, this.getIntent().getData(), this;
     }
综上所述,我相信我已经成功创建了一个branch.io会话和一个侦听器,如果branchError为null(没有冲突),它将允许我检索数据

在onStart()中,我现在尝试生成一个引用代码。因此,整个onStart()如下所示:

@Override
protected void onStart() {
    // note that branch is a global variable (Branch branch;)
    if (DEBUG) {
        branch = Branch.getTestInstance(this.getApplicationContext());
    } else {
        branch = Branch.getInstance(this.getApplicationContext());
    }

    branch.initSession(new BranchReferralInitListener() {
        @Override
        public void onInitFinished(JSONObject jsonObject, BranchError branchError) {
            if (branchError == null) {}        

        }, this.getIntent().getData(), this;
    }

    branch.getReferralCode(5, new BranchReferralInitListener() {
        @Override
        public void onInitFinished(JSONObject jsonObject, BranchError branchError) {
            try {
                String code = jsonObject.getString("referral_code");
                Log.d(TAG, "code: " + code);
            } catch (JSONException e) {
                Log.e(TAG, "JSONException :: " + e);
                e.printStackTrace();
            }
        }
    });
}
5) 我添加了Wintent覆盖方法

@Override
protected void onNewIntent(Intent intent) {
    this.setIntent(intent);
}

我的应用程序无法到达onInitFinished侦听器的内部,因此我无法检索任何代码。对于我错过的任何建议,我们都将不胜感激,希望此线程能够填补文档中缺少的漏洞。

我将假设以下代码行已正确关闭,不会引发语法错误:

branch.initSession(new BranchReferralInitListener() {
    @Override
    public void onInitFinished(JSONObject jsonObject, BranchError branchError) {
        if (branchError == null) {}    
     }, this.getIntent().getData(), this); // parenthesis wasnt here
首先,如果要扩展应用程序类,则需要在应用程序类的
onCreate()
回调中初始化分支:

public void onCreate() {
    super.onCreate();
    Branch.getInstance(this);
}
根据找到的分支示例代码,您实际上需要调用:

Branch.getInstance();
而不是:

Branch.getInstance(getApplicationContext());

在活动中
onCreate
回调。一旦解决了这个问题,分支SDK将正确创建。

我实际上解决了这个问题。冲突在于,分支在我的实现几个小时后做了一个更改,他们希望在没有划分这两个键之前在您的清单中包含以下元数据,因此我的代码无法工作,因为我没有使用测试键。您的建议也有帮助。谢谢