14

对于正常的Activity,我可以设置一些断点,在Eclipse中点击F11进行调试。但是,当我开发应用程序小部件时它不起作用。那么,我该如何调试呢?

4

4 回答 4

9

在这里你可以找到一个很好的答案:

调试小部件代码所需的一切几乎与为普通应用程序所做的相同。只需按照以下步骤操作:

1.在eclipse菜单上按“debug”(或者“run”似乎没关系)

2.将小部件 apk 同步并安装到您的模拟器/设备后,将您的 Eclipse 工作区切换到 DDMS 模式。您可以通过按右上角的“DDMS”标记按钮来执行此操作,或者如果找不到它,则通过转到“Window->Open Perspective->DDMS”来执行此操作。

3.从显示的进程列表中选择小部件的进程名称。默认情况下,此列表显示在 DDMS 窗口的左上方。(见下面的截图)。如果您在列表中看不到小部件的进程名称,则可能是小部件尚未添加到主屏幕。所以,这样做。

4.按进程列表上方的绿色调试按钮(见下面的截图)

5.就是这样。现在,如果您在代码中放置了断点,请执行一些执行该代码的操作。

在此处输入图像描述

于 2013-02-21T08:38:36.700 回答
0

我假设“App Widget”是指用户可以通过长按背景墙纸来添加到主屏幕的小部件?

如果您的AndroidManifest.xml文件设置正确,您就可以像调试任何其他 Android 应用程序一样调试这些小部件。

但是,请注意,您需要先将小部件添加到主屏幕。

完成此操作后,您应该会在 Eclipse 的 DDMS 模式透视图中看到您的小部件进程。您可以附加调试器并调试您的代码。

于 2013-02-03T14:45:13.430 回答
0

安卓工作室

我没有找到显式调试 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>
于 2017-08-02T07:56:46.450 回答
-1

安卓工作室

这真的很简单。只需在您的班级中设置您的调试点即可extends AppWidgetProvider

从这里...

  1. 启动您的模拟器通过 USB 数据线连接您的手机
  2. 像往常一样选择Debug图标。
  3. 等待您的应用启动
  4. 转到您的主屏幕
  5. 添加您的小部件转到已显示小部件的屏幕

从这一点开始,如果您在onUpdate(...)方法中有断点,那么您的小部件调试将开始

星空的回答

于 2015-10-10T10:37:01.007 回答