Для нормальной активности я могу установить некоторые точки останова и нажать F11 в Eclipse для отладки. Тем не менее, он не работает, когда я разрабатываю виджет приложения. Итак, как я могу отлаживать?
Как отлаживать приложение с Android App Widget?
Ответ 1
Здесь вы можете найти хороший ответ:
Все, что вам нужно для отладки кода вашего виджета, почти такое же, как и для обычных приложений. Просто выполните следующие шаги:
1. Нажмите "debug" в меню затмения (или "запустите", похоже, не имеет значения)
2. После того, как виджет apk синхронизируется и устанавливается на ваш эмулятор/устройство, переключите рабочее пространство eclipse в режим DDMS. Вы можете сделать это, нажав кнопку "DDMS" в верхнем правом углу или если вы не можете ее найти, сделайте это, перейдя в "Window- > Open Perspective- > DDMS".
3. Выберите имя процесса вашего виджета в списке процессов. По умолчанию этот список отображается в левом верхнем углу окна DDMS. (См. Снимок экрана ниже). Если вы не видите имя процесса виджетов в списке, возможно, что виджет еще не добавлен на главный экран. Итак, сделайте это.
4. Нажмите зеленую кнопку отладки над списком процессов (см. снимок экрана ниже)
5. И вот оно. Теперь, если вы поставили точку останова в коде, выполните то, что выполняет этот фрагмент кода.
Ответ 2
Я предполагаю, что с помощью "App Widget" вы имеете в виду, что пользователи виджетов могут добавлять на свои домашние экраны длительное нажатие на фоновые обои?
Если ваш файл AndroidManifest.xml
настроен правильно, вы можете отлаживать эти виджеты так же, как и любое другое приложение для Android.
Однако обратите внимание, что сначала нужно добавить виджет на главный экран.
Как только вы это сделаете, вы должны увидеть, что ваш процесс виджета отображается в перспективе режима DDMS в Eclipse. Вы можете прикрепить отладчик и отладить ваш код.
Ответ 3
Android Studio
Это действительно просто. Просто настройте свои отладочные точки в своем классе, чтобы extends AppWidgetProvider
.
Отсюда...
- Запустите свой эмулятор ИЛИ Подключите телефон через USB-кабель.
- Выберите значок
Debug
, как обычно. - Подождите, пока ваше приложение запустится.
- Перейдите на главный экран.
- Добавьте свой виджет ИЛИ идите на экран с уже установленным виджетами
С этого момента, если у вас есть точка останова в методе onUpdate(...)
, то ваша отладка виджета начнется
Затмение
Ответ 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>
теперь вы должны разместить свою точку останова везде, где хотите отлаживать, и запустить приложение с помощью . Теперь код всего приложения находится в сеансе отладки, и отладчик остановится в любой точке останова, включая виджет.
Примечание: перед производством удалите фильтр намерения запуска из вашего манифеста, если вы не имеете в виду, что для этого действия запускается непосредственно с панели запуска устройства.
<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>