对于正常的Activity,我可以设置一些断点,在Eclipse中点击F11进行调试。但是,当我开发应用程序小部件时它不起作用。那么,我该如何调试呢?
4 回答
在这里你可以找到一个很好的答案:
调试小部件代码所需的一切几乎与为普通应用程序所做的相同。只需按照以下步骤操作:
1.在eclipse菜单上按“debug”(或者“run”似乎没关系)
2.将小部件 apk 同步并安装到您的模拟器/设备后,将您的 Eclipse 工作区切换到 DDMS 模式。您可以通过按右上角的“DDMS”标记按钮来执行此操作,或者如果找不到它,则通过转到“Window->Open Perspective->DDMS”来执行此操作。
3.从显示的进程列表中选择小部件的进程名称。默认情况下,此列表显示在 DDMS 窗口的左上方。(见下面的截图)。如果您在列表中看不到小部件的进程名称,则可能是小部件尚未添加到主屏幕。所以,这样做。
4.按进程列表上方的绿色调试按钮(见下面的截图)
5.就是这样。现在,如果您在代码中放置了断点,请执行一些执行该代码的操作。
我假设“App Widget”是指用户可以通过长按背景墙纸来添加到主屏幕的小部件?
如果您的AndroidManifest.xml
文件设置正确,您就可以像调试任何其他 Android 应用程序一样调试这些小部件。
但是,请注意,您需要先将小部件添加到主屏幕。
完成此操作后,您应该会在 Eclipse 的 DDMS 模式透视图中看到您的小部件进程。您可以附加调试器并调试您的代码。
安卓工作室
我没有找到显式调试 App Widget 的“结构化”方式。
我的解决方法:
确保您的项目中有一个 Activity - 通常您至少会有一个 Setting 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
。
从这里...
- 启动您的模拟器或通过 USB 数据线连接您的手机
- 像往常一样选择
Debug
图标。 - 等待您的应用启动
- 转到您的主屏幕
- 添加您的小部件或转到已显示小部件的屏幕
从这一点开始,如果您在onUpdate(...)
方法中有断点,那么您的小部件调试将开始
蚀
星空的回答