Android apk使用默认名称和别名安装活动

Android apk使用默认名称和别名安装活动,android,android-studio,Android,Android Studio,我的Android应用程序的主要活动有一个默认名称和一个别名,如果用户选择的话,应该将其放在应用程序中。我用以下方式在我的AndroidManifest.xml上定义了它 <activity android:name="com.example.fgd.myapplication4.MainActivity4" android:label="mydefaultlabel" android:theme="@style/AppTheme.

我的Android应用程序的主要活动有一个默认名称和一个别名,如果用户选择的话,应该将其放在应用程序中。我用以下方式在我的AndroidManifest.xml上定义了它

     <activity
        android:name="com.example.fgd.myapplication4.MainActivity4"
        android:label="mydefaultlabel"
        android:theme="@style/AppTheme.NoActionBar"
        android:exported="true" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity-alias
        android:label="myaliaslabel"
        android:name=".MainActivity-Flavor-One"
        android:enabled="true"
        android:targetActivity=".MainActivity4"
        android:exported="true" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity-alias>
</application>
我得到一个错误,应用程序没有安装在我的Android设备上

看起来,不管怎样,别名都必须使用launcher类别定义,才能以这种方式更改应用程序别名

我看没有办法改变别名,除非用这种方法

还有什么可以做的吗?

您正在设置两个主要活动和启动器


您只需将这些行添加到实现图标或其他内容的特定活动中。

实际上,这比我想象的要容易


在activity alias中,您只需将安卓:enabled=true更改为安卓:enabled=false,这样别名仍然可以正常工作,但不会第一次显示为启动器。

谢谢您的回答,但它不起作用,我正在编辑我的帖子以显示相关问题。
getPackageManager().setComponentEnabledSetting(
                            new ComponentName("com.example.alber.myapplication4", "com.example.alber.myapplication4.MainActivity-Flavor-One"),
                            PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);

getPackageManager().setComponentEnabledSetting(
                            new ComponentName("com.example.alber.myapplication4", "com.example.alber.myapplication4.MainActivity4"),
                            PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
            <action android:name="android.intent.action.MAIN" /> //<--wrong
            <category android:name="android.intent.category.LAUNCHER" /> <--wrong