Подтвердить что ты не робот

Разработка приложений для Android: создаются два значка, и мне нужен только один

Я пишу приложение для Android, у которого есть одно основное действие и одна субактивность. Когда я устанавливаю приложение на свой телефон, чтобы проверить его, я получаю две иконки вместо одной. Первая иконка предназначена для основной активности, вторая - для субактивности. Я не хочу/нуждаюсь в значке для субактивности.

Кто-нибудь знает, как отключить это в моем коде приложения, чтобы был установлен только значок для основной активности? Любая информация, которую вы можете предоставить, очень ценится!

Спасибо, MobiKnow

4b9b3361

Ответ 1

Отображает ли ваш список приложений фильтр намерений под вашим под-активностью, который соответствует основной программе запуска?

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

Убедитесь, что ваш суб-действие не фильтруется для этих целей.

Изменить: просто чтобы быть предельно ясным, убедитесь, что вышеуказанные строки не указаны в вашем под-активном действии. Этот фильтр намерений позволяет системе Android знать, что вы намерены включить ее в качестве точки входа в ваше приложение.

Ответ 2

У нас та же проблема, но я исправил ее таким образом перед моим кодом ниже в манифесте

<application
        android:debuggable="true"
        android:allowBackup="true">
        <activity        android:name=".SplashActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.noupdate.apptest_noupdate.MainActivity"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

Обратите внимание, что в SplashActivity внутри намерения находится этот код

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

i удалили только категорию

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

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

<application
        android:debuggable="true"
        android:allowBackup="true">
        <activity     android:name=".SplashActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

            </intent-filter>
        </activity>
        <activity
            android:name="com.noupdate.apptest_noupdate.MainActivity"
            android:icon="@drawable/ic_launcher"
            android:theme="@android:style/Theme.NoTitleBar"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

он действительно помогает

Ответ 3

Он создает два значка приложения, потому что вы должны добавить данный фильтр к двум вашим действиям. См. Манифест.

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

Удалите вышеуказанное утверждение из другого. Тогда вам хорошо идти.

Ответ 4

Как и в других ответах,

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

Был виновником. Однако в моем манифесте у меня было только одно действие с этим фильтром намерений. Как оказалось, я использую библиотеку, которую я построил, и у нее есть активность, объявленная в ней манифест, который использует этот фильтр намерения. Короче говоря, убедитесь, что ваш манифест приложения и зависимости, если они есть, имеют только одно действие с фильтром намерения.

Ответ 5

Я собираюсь догадаться, что в вашем AndroidManifest.xml у вас есть оба действия с фильтром itunent LAUNCHER. Удалите его из второго действия, и вы должны быть установлены.

Ответ 6

У вас есть

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

вместе с

android:icon="@drawable/icon.png"

для обоих действий.

Что это означает, что это значок запуска, поместите меня на главный экран. Установите только те, которые требуются для активации (ies/y) на главном экране.

Ответ 7

Я искал ответ на тот же вопрос. Кажется, единственное, что нужно (помимо рекомендаций по удалению фильтра MAIN и LAUNCHER) - это перестроить ваш проект, который очистит все, и при следующем запуске я увидел одиночный значок на своем устройстве (только запуск приложения на устройстве после внесения изменений не помогите).

Ответ 8

<intent-filter android:icon="drawable resource" android:priority="Integer" /intent-filter>

Для родительского компонента установлены приоритеты. Этот параметр может помочь вам установить родительский значок для разработки вашего приложения Android.

Ответ 9

если кто-нибудь столкнется с этой проблемой, используя Pebble SDK. Я заметил, что у PebbleKit Androidmanifest.xml есть активность LAUNCHER. Это то, что вызвало это для меня. Просто удалите эту часть. Это не повлияет на функциональность Pebble.

Ответ 10

ПРОСТОЙ ответ.. УДАЛИТЬ:

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

Из вашего AndroidManifest.xml

Оставьте свой фильтр намерений в покое.