【发布时间】:2013-01-18 09:01:36
【问题描述】:
对于普通的Activity,我可以设置一些断点,在Eclipse中点击F11进行调试。 但是,当我开发应用程序小部件时它不起作用。那么,我该如何调试呢?
【问题讨论】:
-
@StarsSky 我认为您的评论是问题的正确答案,也许您应该将其作为答案重新发布,以便 jjLin 可以接受?
标签: android debugging android-widget
对于普通的Activity,我可以设置一些断点,在Eclipse中点击F11进行调试。 但是,当我开发应用程序小部件时它不起作用。那么,我该如何调试呢?
【问题讨论】:
标签: android debugging android-widget
Here你可以找到一个很好的答案:
调试您的小部件代码所需的一切几乎与您对普通应用程序所做的相同。只需按照以下步骤操作:
1. 在 Eclipse 菜单上按“调试”(或“运行”似乎无关紧要)
2. 将小部件 apk 同步并安装到您的模拟器/设备后,将您的 Eclipse 工作区切换到 DDMS 模式。您可以通过点击右上角的“DDMS”按钮来执行此操作,或者如果找不到它,请转到“Window->Open Perspective->DDMS”。
3. 从显示的进程列表中选择小部件的进程名称。默认情况下,此列表显示在 DDMS 窗口的左上方。 (见下面的截图)。如果您在列表中看不到小部件的进程名称,则可能是小部件尚未添加到主屏幕。所以,这样做吧。
4.按下进程列表上方的绿色调试按钮(见下方截图)
5. 就是这样。现在,如果您在代码中放置了一个断点,请执行一些执行该代码的操作。
【讨论】:
我假设“App Widget”是指用户可以通过长按背景壁纸来添加到主屏幕的小部件?
如果您的 AndroidManifest.xml 文件设置正确,您就可以像调试任何其他 Android 应用程序一样调试这些小部件。
但请注意,您需要先将小部件添加到主屏幕。
完成此操作后,您应该会在 Eclipse 的 DDMS 模式透视图中看到您的小部件进程。您可以附加调试器并调试您的代码。
【讨论】:
Android Studio
我没有找到显式调试 App Widget 的“结构化”方式。
我的解决方法:
确保您的项目中有一个 Activity - 通常您至少会有一个 Setting Activity,但如果没有,只需创建一个不需要做任何事情的虚拟 Activity。
在您的 Manifest 中,添加此 Activity 并将其标记为启动 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>
现在您应该将断点放置在您想要调试的任何位置,并使用 按钮启动您的应用程序。 现在整个应用程序的代码都在调试会话下,调试器将在任何断点处停止,包括小部件。
注意:在生产之前,如果您不打算直接从设备启动板启动此 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>
【讨论】:
其实很简单。只需在 extends AppWidgetProvider 的类中设置调试点。
从这里...
Debug图标。从这里开始,如果您在onUpdate(...) 方法中有一个断点,那么您的小部件调试将开始
StarsSky的回答
【讨论】: