You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修改AndroidManifest.xml后Pipe应用无法在主屏幕显示

问题根因

AndroidManifest.xml存在两处配置错误,直接导致应用无法在桌面生成启动入口:

  • <application>标签重复声明了两次android:name属性(分别对应.App和.Applications),属于XML语法错误,会干扰系统对Manifest文件的正常解析
  • 主ActivityMainActivity的启动专用intent-filter被错误添加了<data android:scheme="pipe" />约束。Android系统识别桌面启动入口的匹配规则要求intent-filter必须同时包含android.intent.action.MAIN动作和android.intent.category.LAUNCHER分类,且不能附加额外data约束——系统桌面发起的启动Intent不携带任何data数据,添加该规则后intent匹配直接失败,系统不会将该Activity识别为可启动的桌面入口,自然不会生成图标。
修复方案
  1. 清理<application>标签的重复属性:两个android:name配置只保留你实际使用的Application子类,删除多余的重复声明行。
  2. 将pipe协议的深链唤起规则从LAUNCHER专用的intent-filter中拆分出来,单独定义一个独立的intent-filter存放深链配置,禁止在MAIN/LAUNCHER的过滤器中添加任何data约束。深链对应的intent-filter建议补充android.intent.category.BROWSABLE分类,保证第三方应用、浏览器可以正常通过协议唤起应用。
修复后参考配置
<?xml version='1.0' encoding='utf-8'?>
<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.gell.browserx">

    <uses-permission android:name="android.permission.INTERNET"/>
    <application
        android:name=".App"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme"
        android:largeHeap="true"
        android:resizeableActivity="true">

        <activity
            android:name=".ui.activity.MainActivity"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.NoTitleBar"
            android:exported="true">
            
            <!-- 桌面启动专用过滤器,不要添加任何data配置 -->
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>

            <!-- 深链规则单独放一个过滤器 -->
            <intent-filter>
                <action android:name="android.intent.action.VIEW"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <category android:name="android.intent.category.BROWSABLE"/>
                <data android:scheme="pipe" />
            </intent-filter>
        </activity>
        <activity
            android:name=".ui.activity.SettingActivity"
            android:label="Pipe Setting">
            
            <intent-filter>
                <action android:name="android.intent.action.VIEW"/>
                <data android:scheme="pipe-setting" />
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </activity> 
        <activity android:name=".common.crash.CrashHandler$CrashActiviy"/>
        <activity
            android:name=".DebugActivity"
            android:screenOrientation="portrait"/>

        <meta-data
            android:name="android.max_aspect"
            android:value="4.0"/>
    </application>
</manifest>

注意:如果你的项目实际使用的Application类是.Applications,把上面android:name属性的值替换成对应类名即可,两个配置二选一,不能同时存在。

修改完成后先卸载设备上已安装的旧版本应用,重新编译安装即可在桌面看到启动图标,pipe协议的深链唤起功能也不会受影响。

内容的提问来源于stack exchange,提问作者JsNewbie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 11:54:23