Android-приложение, создающее два значка запуска вместо одного

У меня странная проблема, когда при установке приложения я вижу два значка, один запускает приложение, а другой говорит "Приложение не установлено", когда я нажимаю на него.

Я уверен, что у меня есть только один тег 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>


person Ahmed I. Khalil    schedule 20.10.2015    source источник
comment
Я иногда сталкиваюсь с этим при тестировании приложений на устройствах, перезагрузка устройства обычно удаляет поврежденное.   -  person Tim    schedule 20.10.2015
comment
Спасибо! Проблема решается после перезагрузки устройства, удаление APK и повторная установка не решили проблему, она была решена только после перезагрузки устройства. Не могли бы вы ответить на этот вопрос, чтобы я мог проголосовать за вас и отметить вопрос как решенный с вашим ответом?   -  person Ahmed I. Khalil    schedule 20.10.2015


Ответы (3)


Я иногда сталкиваюсь с этим при тестировании приложений на устройствах, перезагрузка устройства удаляет поврежденное, что решает проблему.

Однако я не знаю, что вызывает этот поврежденный второй значок запуска.

person Tim    schedule 20.10.2015

В основном этот тип проблемы возникает, когда у вас есть приведенный ниже код более одного раза в теге активности.

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

Удалите эти строки из тега активности, где это произошло дважды.

person DroidAks    schedule 20.10.2015
comment
@TimCastelijns это может быть в его файле манифеста. Эта проблема возникает, когда два действия в файле манифеста имеют указанный выше код. и вопрос был отредактирован позже путем добавления содержимого файла манифеста. Так что не может предсказать. - person DroidAks; 20.10.2015
comment
возможно ? манифест находится в вопросе, и он имеет только один. ОП даже сказал, что у него только один - person Tim; 20.10.2015
comment
Как сказал @TimCastelijns, я почти уверен, что у него есть только один «фильтр намерений» с приведенным выше кодом, даже объединенный AndroidManifest.xml, сгенерированный после сборки проекта, содержит только одну категорию «фильтр намерений» LAUNCHER и Основное действие. - person Ahmed I. Khalil; 20.10.2015

Эта проблема появилась у меня после изменения файла манифеста только для одного из двух моих вариантов сборки. Я рефакторил там имена действий и забыл изменить второй файл.

После того, как там тоже все поменяли, это было исправлено.

person Carsten Hagemann    schedule 09.03.2019