当我使用分支生成深层链接时,出现错误。 BranchSDK:分支API错误:来自API的资源错误代码冲突
我已按照他们的文档中提供的说明进行操作,但仍然出现错误。
这是我的代码
清单
<meta-data android:name="io.branch.sdk.BranchKey" android:value="branch_key" />
<meta-data android:name="io.branch.sdk.TestMode" android:value="false" />
应用程序类
Branch.getAutoInstance(this);
这就是我生成深层链接的方式
val buo = BranchUniversalObject()
.setCanonicalIdentifier(messageId.toString())
.setTitle("ShutApp")
.setContentDescription(invite_message)
.setContentIndexingMode(BranchUniversalObject.CONTENT_INDEX_MODE.PUBLIC)
.setLocalIndexMode(BranchUniversalObject.CONTENT_INDEX_MODE.PUBLIC)
.setContentMetadata(ContentMetadata().addCustomMetadata("message", messageId.toString()))
val lp = LinkProperties()
.setFeature("sharing")
.setCampaign("content_sharing")
.setStage("new user")
buo.generateShortUrl(this, lp, Branch.BranchLinkCreateListener { url, error ->
if (error == null) {
Log.i("BRANCH SDK", "got my Branch link to share: $url")
shareDeepLink(url)
} else {
Log.i("BRANCH SDK error", error.message)
}
})
答案 0 :(得分:0)
您可以尝试安装和运行Branch Android测试应用程序以查看是否重现该问题吗? https://docs.branch.io/apps/android/#sample-testing-apps
答案 1 :(得分:0)
我们遇到了以下问题:
io.branch.sdk.android:library:3.2.0
io.branch.sdk.android:library:4.0.0
我注意到,在我们的Android应用上,当您的android_app_link_url
有空格时,您会收到正则表达式错误:
I/BranchSDK: returned {"error":{"instrumentation":[],"metadata":[],"android_app_link_url":"doesn't pass regex"}}
I/BranchSDK: Branch API Error: Conflicting resource error code from API
因此,如上所述,
Branch.getInstance().initSession((referringParams, error)
回调永远不会被调用。
确保使用android_app_link_url
对%20
空格进行编码
在超时中包装分支initSession()
。将在3s后超时并继续应用启动。
// branch timeout
Runnable startTheAppTask = () -> {
Timber.e("Branch.getInstance().initSession() has not responded. Please check for related Branch errors!");
// continue with loading your app here
};
ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
ScheduledFuture<?> branchTimeoutSchedule = executor.schedule(startTheAppTask, 3, TimeUnit.SECONDS);
// branch init
Branch.getInstance().initSession((referringParams, error) -> {
// did get a response, cancel timeout
branchTimeoutSchedule.cancel(true);
// normal operation handling the callback
}, getActivity().getIntent().getData(), getActivity());
答案 2 :(得分:0)
Branch.io返回 分支API错误:与API中的资源错误代码冲突
经过大量研究,我发现解决方案只是为了使测试模式变为真正的状态,如下所示。
<meta-data
android:name="io.branch.sdk.TestMode"
android:value="true" />