对于普通的Activity,我可以设置一些断点并在Eclipse中单击F11进行调试。但是,在开发应用程序小部件时无法使用此方法。那么,我该如何调试?
对于普通的Activity,我可以设置一些断点并在Eclipse中单击F11进行调试。但是,在开发应用程序小部件时无法使用此方法。那么,我该如何调试?
Android Studio
我没有找到一种“结构化”的方式来显式地调试一个应用小部件。
我的解决方法:
确保您的项目中有一个Activity - 通常您至少会有一个设置Activity,但如果没有,只需创建一个不需要执行任何操作的虚拟Activity即可。
在您的清单文件中添加此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 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>
AndroidManifest.xml
文件设置正确,你可以像调试任何其他Android应用程序一样调试这些小部件。这很简单。只需在您的类中设置调试点,该类extends AppWidgetProvider
。
从这里开始...
Debug
图标。从这一点开始,如果您在onUpdate(...)
方法中设置了断点,则您的小部件调试将开始
StarsSky的答案