Разработка приложений для Android: создаются два значка, и мне нужен только один
Я пишу приложение для Android, у которого есть одно основное действие и одна субактивность. Когда я устанавливаю приложение на свой телефон, чтобы проверить его, я получаю две иконки вместо одной. Первая иконка предназначена для основной активности, вторая - для субактивности. Я не хочу/нуждаюсь в значке для субактивности.
Кто-нибудь знает, как отключить это в моем коде приложения, чтобы был установлен только значок для основной активности? Любая информация, которую вы можете предоставить, очень ценится!
Спасибо,
MobiKnow
Ответы
Ответ 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
Оставьте свой фильтр намерений в покое.