我有一种风味和主代码库。我可以切换到风味并运行项目,我可以切换回主代码库并运行项目,但这些项目都不会显示图标。我不知道为什么,我唯一的假设是我的声明和添加到intent-filer的属性出了问题
Flavor 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
}
}
对于Flavor和主代码库,RegistrationActivity类是不同的。没有压倒一切,我相信,因为我使用的是不同的包,所以它们实际上是作为我想要的不同类。但我的问题是,如何与Manifest合并我不能有单独的应用程序图标,我的味道图标和我的主要应用程序图标?什么都没有显示出来。提前致谢
答案 0 :(得分:0)
好的,这就是我设置意图过滤器的方式。我必须在以下结构中将它们分开
Flavor 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下会导致问题,例如运行时出错或没有app图标。干杯