对于普通的Activity,我可以设置一些断点并在Eclipse中单击F11进行调试。 但是,当我开发app小部件时,它无法正常工作。那么,我该如何调试?
答案 0 :(得分:7)
Here你可以找到一个好的答案:
调试窗口小部件代码所需的全部内容与您对普通应用程序的操作几乎相同。只需按照以下步骤操作:
1。在eclipse菜单上按“debug”(或“运行”似乎并不重要)
2. 一旦小部件apk被同步并安装到您的模拟器/设备上,请将您的eclipse工作区切换到DDMS模式。您可以通过按右上角的“DDMS”标记按钮来执行此操作,或者如果找不到,请转到“Window-> Open Perspective-> DDMS”。
3. 从显示的进程列表中选择窗口小部件的进程名称。默认情况下,此列表显示在DDMS窗口的左上角。 (见下面的截图)。如果您无法在列表中看到窗口小部件的进程名称,则窗口小部件可能尚未添加到主屏幕。所以,这样做。
4. 按流程列表上方的绿色调试按钮(参见下面的屏幕截图)
5. 就是这样。现在,如果你在代码中放了一个断点,那就做一些执行该代码的东西。
答案 1 :(得分:0)
我认为“App Widget”是指用户可以通过长按背景墙纸添加到主屏幕的小部件?
如果您的AndroidManifest.xml
文件设置正确,您就可以像调试任何其他Android应用程序一样调试这些小部件。
但请注意,您需要先将小部件添加到主屏幕。
完成后,您应该会在Eclipse中的DDMS模式透视图下看到您的窗口小部件进程。您可以附加调试器并调试代码。
答案 2 :(得分:0)
这很简单。只需在您的班级中设置extends AppWidgetProvider
。
从这里......
Debug
图标。从这一点来说,如果你在onUpdate(...)
方法中有一个断点,那么你的小部件调试就会开始
StarsSky的回答
答案 3 :(得分:0)
Android Studio
我没有找到一种“结构化”的方式来显式调试App Widget。
我的解决方法:
确保您的项目中有一个活动 - 通常您至少会有一个设置活动,但如果没有,只需创建一个不需要做任何事情的虚拟活动。
在您的清单中,添加此活动并将其标记为启动活动:
<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>