这是我的情况
var series = new List<int>();
while (true)
{
Console.WriteLine("Please pick a number between 1 and 100:");
series.Add(int.Parse(Console.ReadLine()));
Console.WriteLine("Do you want to try again (Y/N): ");
if (Console.ReadLine().ToLower()[0] != 'y')
{
break;
}
}
Console.WriteLine("Your numbers are:");
foreach (var number in series)
{
Console.WriteLine(number);
}
Console.ReadLine();
并且productFlavors {
paid {
applicationId "com.paid.app"
}
free {
applicationId "com.free.app"
}
}
风格与paid
或main
相比,我需要一个不同的启动器活动,如下所示
free
当我开始在main/AndroidManifest.xml
<activity
android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
paid/AndroidManifest.xml
<activity
android:name=".SecondMainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
版本变体中安装应用时,它总是安装两个应用,即免费和付费但具有相同的应用名称。当我卸载任何一个时,应用程序都会被卸载。不应该只paid
变体构建付费应用,paid
变体构建免费应用吗?以下是我的工作环境
free
答案 0 :(得分:14)
实际上,你可以这样做,拥有2个清单文件而不重复活动:
主/ AndroidManifest.xml中:
<activity
android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
付费/ AndroidManifest.xml中:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.yourpackage">
<activity
android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter tools:node="remove">
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity
android:name=".SecondMainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</manifest>
意味着在清单合并为付费风格时,您将从main中删除定义启动器活动的intent-filter,并将其添加到SecondMainActivity。
答案 1 :(得分:6)
您没有安装2个应用。
在Manifest中使用付费风格,您将合并2个活动与LAUNCHER类别。
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
通过这种方式,您将有2个图标来启动您的应用。一个用于MainActivity
,一个用于SecondActivity
。
如果您想为每种风味添加不同的活动,则必须在每种风味中使用相同的活动。
app/src/free/java/..../MainActivity
app/src/paid/java/..../MainActivity