Как отлаживать приложение с Android App Widget?

Для нормальной активности я могу установить некоторые точки останова и нажать F11 в Eclipse для отладки. Тем не менее, он не работает, когда я разрабатываю виджет приложения. Итак, как я могу отлаживать?

Ответ 1

Здесь вы можете найти хороший ответ:

Все, что вам нужно для отладки кода вашего виджета, почти такое же, как и для обычных приложений. Просто выполните следующие шаги:

1. Нажмите "debug" в меню затмения (или "запустите", похоже, не имеет значения)

2. После того, как виджет apk синхронизируется и устанавливается на ваш эмулятор/устройство, переключите рабочее пространство eclipse в режим DDMS. Вы можете сделать это, нажав кнопку "DDMS" в верхнем правом углу или если вы не можете ее найти, сделайте это, перейдя в "Window- > Open Perspective- > DDMS".

3. Выберите имя процесса вашего виджета в списке процессов. По умолчанию этот список отображается в левом верхнем углу окна DDMS. (См. Снимок экрана ниже). Если вы не видите имя процесса виджетов в списке, возможно, что виджет еще не добавлен на главный экран. Итак, сделайте это.

4. Нажмите зеленую кнопку отладки над списком процессов (см. снимок экрана ниже)

5. И вот оно. Теперь, если вы поставили точку останова в коде, выполните то, что выполняет этот фрагмент кода.

enter image description here

Ответ 2

Я предполагаю, что с помощью "App Widget" вы имеете в виду, что пользователи виджетов могут добавлять на свои домашние экраны длительное нажатие на фоновые обои?

Если ваш файл AndroidManifest.xml настроен правильно, вы можете отлаживать эти виджеты так же, как и любое другое приложение для Android.

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

Как только вы это сделаете, вы должны увидеть, что ваш процесс виджета отображается в перспективе режима DDMS в Eclipse. Вы можете прикрепить отладчик и отладить ваш код.

Ответ 3

Android Studio

Это действительно просто. Просто настройте свои отладочные точки в своем классе, чтобы extends AppWidgetProvider.

Отсюда...

  • Запустите свой эмулятор ИЛИ Подключите телефон через USB-кабель.
  • Выберите значок Debug, как обычно.
  • Подождите, пока ваше приложение запустится.
  • Перейдите на главный экран.
  • Добавьте свой виджет ИЛИ идите на экран с уже установленным виджетами

С этого момента, если у вас есть точка останова в методе onUpdate(...), то ваша отладка виджета начнется

Затмение

Ответы StarsSky

Ответ 4

Android Studio

Я не нашел "структурированный" способ явного отладки виджета приложений.

Мое обходное решение:

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

В манифесте добавьте это действие и отметьте его как запускающее действие:

<activity android:name=".activity.SettingActivity"
    android:label="@string/setting_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
</activity>

теперь вы должны разместить свою точку останова везде, где хотите отлаживать, и запустить приложение с помощью ввести image description here. Теперь код всего приложения находится в сеансе отладки, и отладчик остановится в любой точке останова, включая виджет.

Примечание: перед производством удалите фильтр намерения запуска из вашего манифеста, если вы не имеете в виду, что для этого действия запускается непосредственно с панели запуска устройства.

        <activity android:name=".activity.**SettingActivity**"
        android:label="@string/setting_name">
        <!--<intent-filter>-->
            <!--<action android:name="android.intent.action.MAIN"/>-->
            <!--<category android:name="android.intent.category.LAUNCHER"/>-->
        <!--</intent-filter>-->
    </activity>