Android 应用链接尝试验证随机主机并失败

Posted

技术标签:

【中文标题】Android 应用链接尝试验证随机主机并失败【英文标题】:Android app link tries to verify a random host and fails 【发布时间】:2020-12-15 20:15:57 【问题描述】:

我已将 applinks 添加到我的应用程序,并且已将assetlinks.json 文件上传到我的域。使用 App Link Support,点击 Link and Verify 给我以下信息:

到目前为止一切顺利。现在,当我在 Logcat 中安装应用程序并过滤 IntentFilterIntentOp 时,我将一个完全随机的主机添加到我的域列表中。主机名是string,我收到以下错误。 java.net.MalformedURLException: 输入主机无效。

我在 android manifest 中的活动如下所示:

<activity
        android:name=".mainactivity.MainActivity"
        android:launchMode="singleInstance">
        <nav-graph android:value="@navigation/nav_host_main" />
        <intent-filter android:autoVerify="true">
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />

            <data
                android:scheme="https"
                android:host="my-url" />
        </intent-filter>
    </activity>

我的问题是域string 来自哪里? IntentFilterIntentOp 的 logcat 过滤器如下所示:

Verifying IntentFilter. verificationId:89 scheme:"https" hosts:"my-url string" package:"my-package". [CONTEXT service_id=244 ]

【问题讨论】:

【参考方案1】:

我发现了问题所在。 我还试图在导航组件的深层链接中包含变量。

所以我在片段中的深层链接看起来像

    <fragment
    ...
        <deepLink
            android:id="@+id/deepLink6"
            app:uri="@string/deeplink_setpassword_verify_email" />
    </fragment>

这是 Android 将其作为字符串的地方。所以我不得不在这里写实际的 URL。

【讨论】:

以上是关于Android 应用链接尝试验证随机主机并失败的主要内容,如果未能解决你的问题,请参考以下文章

身份验证请求失败 PayPal Android SDK 示例

Android Studio 显示密码验证失败错误

用于 Google 登录的 Android Firebase 身份验证失败

为啥我的SSL证书验证失败

Android LVL 签名验证失败

尝试上传应用程序并验证捆绑标识符失败