Android应用程序创建两个启动器图标而不是一个

时间:2015-10-20 12:09:08

标签: android android-manifest android-launcher

我有一个奇怪的问题,在安装应用程序时,我看到两个图标,一个启动应用程序,另一个说“我没有安装应用程序”。

我确信我只有一个intent-filter标记包含

<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />

我甚至在中间人文件夹中检查了合并的最终AndroidManifest.xml,但我仍然没有看到另一个android.intent.category.LAUNCHER

这是我的主要AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.example.package">

<uses-permission
    android:name="android.permission.GET_ACCOUNTS"
    tools:remove="android:maxSdkVersion" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.READ_SYNC_STATS" />
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />

<application
    android:name=".App"
    android:allowBackup="false"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme"
    tools:replace="android:allowBackup">

    <activity
        android:name=".activity.LauncherActivity"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.NoDisplay">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity
        android:name=".activity.VerificationActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.Verification" />

    <activity
        android:name=".activity.HomeActivity"
        android:label="@string/app_name"/>

    <activity
        android:name="com.facebook.FacebookActivity"
        android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Translucent.NoTitleBar" />

    <activity
        android:name=".activity.MallActivity"
        android:parentActivityName=".activity.HomeActivity" />

    <activity android:name=".activity.StoreActivity" />

    <activity
        android:name=".activity.EnclosedFragmentActivity"
        android:theme="@style/AppTheme"
        android:windowSoftInputMode="adjustPan" />

    <provider
        android:name=".provider.MallBuddyProvider"
        android:authorities="com.example.package"
        android:exported="false"
        android:syncable="true" />

    <activity
        android:name=".activity.SearchActivity"
        android:launchMode="singleTop"
        android:theme="@style/AppTheme">
        <intent-filter>
            <action android:name="android.intent.action.SEARCH" />
        </intent-filter>
        <meta-data
            android:name="android.app.searchable"
            android:resource="@xml/searchable" />
    </activity>

    <service android:name=".sync.AuthenticatorService"
        android:exported="false">
        <intent-filter>
            <action android:name="android.accounts.AccountAuthenticator" />
        </intent-filter>
        <meta-data
            android:name="android.accounts.AccountAuthenticator"
            android:resource="@xml/authenticator" />
    </service>

    <service
        android:name=".sync.SyncService"
        android:exported="true"
        android:process=":sync">
        <intent-filter>
            <action android:name="android.content.SyncAdapter" />
        </intent-filter>
        <meta-data
            android:name="android.content.SyncAdapter"
            android:resource="@xml/syncadapter" />
    </service>

    <meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="@string/facebook_app_id" />
</application>

3 个答案:

答案 0 :(得分:2)

我有时会在设备上测试应用时遇到这种情况,重新启动设备会删除已损坏的应用,解决问题。

我不知道是什么原因造成这个腐败的第二个发射器图标。

答案 1 :(得分:0)

如果您在活动代码中多次使用以下代码,则会出现此类问题。

<intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

从活动标签中删除此行已发生两次。

答案 2 :(得分:0)

仅针对我的两个构建变体之一更改清单文件后,这个问题出现在我身上。我在那里重构活动名称,却忘记更改第二个文件。

在也更改了所有内容之后,此问题已解决。