Не удалось запустить ярлык:Приложение не установлено на вашем телефоне

StackOverflow https://stackoverflow.com/questions/3835480

Вопрос

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

    final Intent shortcutIntent = new Intent(Intent.ACTION_MAIN);
    ComponentName name = new ComponentName(getPackageName(), ".MyActivity");
    shortcutIntent.setComponent(name);

    shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);


    final Intent intent = new Intent();
    intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);

    intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "blabla");
    intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, icon);

    intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
    sendBroadcast(intent);
    finish();

И я добавил действие MAIN в свою деятельность:

    <activity android:label="@string/app_name" android:name=".MyActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
        </intent-filter>
    </activity>

Результат - приложение не хочет запускаться!

В Logcat все выглядит нормально:

10-01 01:17:51.591: INFO/ActivityManager(2424): Starting activity: Intent { act=android.intent.action.MAIN flg=0x14000000 cmp=my.package.name/.MyActivity bnds=[125,384][235,522] (has extras) }

А Дом мне сообщает, что приложение не установлено.

Пожалуйста, помогите мне, я совершенно запутался и трачу несколько часов, пытаясь решить проблему, и читаю всю информацию, которую могу получить.

Большое спасибо!

Это было полезно?

Решение

Попробуй это:

  1. избавиться от <intent-filter>
  2. избавиться от ACTION_MAIN и просто использовать new Intent(this, MyActivity.class)
  3. Добавьте Android: экспортировано = "true" на свой элемент в манифесте

Другие советы

Это может произойти, если ваша активность дважды объявлена ​​в AndroidManifest.xml: сначала как средство запуска, а затем просто объявлено следующим образом:

<activity android:name=".MyActivity" />
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top