Flavor AndroidManifest.xml 与 main AndroidManifest.xml 冲突,安装时没有图标

Flavor AndroidManifest.xml conflicting with main AndroidManifest.xml, no icons upon installation

我有一种风格和一个主要代码库。我可以切换到 flavor 并且项目运行,我可以切换回主代码库并且项目运行,但是这些项目都不会显示图标。我不知道为什么,我唯一的假设是我添加到 intent-filer

的声明和属性有问题

风味AndroidManifest.xml

<application
    android:name="com.example.flavor.application.MyApplication"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/CustomAppTheme"
    tools:replace="android:name">

    <!-- main launcher Activity -->
    <activity
        android:name="com.example.flavor.activity.RegistrationActivity"
        android:configChanges="orientation|screenSize"
        android:label="@string/app_name"
        android:screenOrientation="portrait"
        android:theme="@style/CustomAppTheme"
        android:windowSoftInputMode="adjustResize">
        <intent-filter>
            <action android:name="com.example.flavor.activity.RegistrationActivity"/>
            <action android:name="android.intent.action.MAIN"/>
            <action android:name="android.intent.action.VIEW"/>

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

        </intent-filter>
    </activity>

</application>

主要AndroidManifest.xml

<application
    android:name="com.example.application.MyApplication"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/CustomAppTheme"
    tools:replace="android:name">

    <!-- main launcher Activity -->
    <activity
        android:name="com.example.activity.RegistrationActivity"
        android:configChanges="orientation|screenSize"
        android:label="@string/app_name"
        android:screenOrientation="portrait"
        android:theme="@style/CustomAppTheme"
        android:windowSoftInputMode="adjustResize">
        <intent-filter>
            <action android:name="com.example.activity.RegistrationActivity"/>
            <action android:name="android.intent.action.MAIN"/>
            <action android:name="android.intent.action.VIEW"/>

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

        </intent-filter>
    </activity>

</application>

我的构建 gradle 设置如下

productFlavors {
    standard {
        applicationId 'com.example'
        manifestPlaceholders = [package_name: "com.example", primary_lang: "en"]
        signingConfig signingConfigs.keystore
    }
    legacyTest {
        applicationId 'com.example.flavor.test'
        manifestPlaceholders = [package_name: "com.example.flavor.test",
                                target      : "Test", primary_lang: "en"]
        signingConfig signingConfigs.keystore
    }
}

RegistrationActivity class Flavor 和主要代码库不同。没有压倒一切的事情发生,我相信因为我使用的是不同的包,所以它们有效地充当了不同的 classes,这正是我想要的。但我的问题是,为什么 Manifest 合并后我不能有单独的应用程序图标、我的风格图标和我的主要应用程序图标?没有显示任何内容。提前致谢

好的,这就是我设置意图过滤器的方式。我不得不按照以下结构将它们分开

风味AndroidManifest.xml

<intent-filter>
            android:name="com.example.flavor.activity.RegistrationActivity"
            <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"/>
        </intent-filter>

主要AndroidManifest.xml

 <intent-filter>
            android:name="com.example.activity.RegistrationActivity"
            <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"/>
        </intent-filter>

我不明白这种格式有效的技术原因,但将所有内容分组在一个 intent-filter 下会导致问题,例如运行时出错或没有应用程序图标。干杯