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 下会导致问题,例如运行时出错或没有应用程序图标。干杯
我有一种风格和一个主要代码库。我可以切换到 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 下会导致问题,例如运行时出错或没有应用程序图标。干杯