【问题标题】:Breakpoints not working with a service in Android断点不适用于 Android 中的服务
【发布时间】:2015-11-24 23:30:21
【问题描述】:

我正在尝试调试我的服务,但由于断点不起作用,我无法调试。是的,我使用了android.os.Debug.waitForDebugger(),不管我在哪里使用它(在行之前,在onstart命令中,在方法中)它不起作用。我设置了断点,服务不会停止。我已经在正常活动中尝试过它们,它们在那里工作正常。

【问题讨论】:

  • 您是否在单独的进程中启动您的服务?如果是这样,stackoverflow.com/a/62079516/1578867 可能会有所帮助。您需要在服务启动后的适当时间附加到服务进程。

标签: android debugging service breakpoints


【解决方案1】:

您是否尝试过在服务中打印日志语句以确保您的服务正常运行?

确保您已在清单中声明您的服务,这是创建服务时的常见错误。

【讨论】:

  • 当然可以,否则我不会调试它。我也查过了,服务也说调试器已附加。
【解决方案2】:

在 AndroidManifest.xml 中将属性 android:process=":sync" 添加到服务条目:

<service
        android:name=".SyncService"
        android:exported="true"
        android:process=":sync" >
        <intent-filter>
            <action android:name="android.content.SyncAdapter"/>
        </intent-filter>
        <meta-data
            android:name="android.content.SyncAdapter"
            android:resource="@xml/syncadapter"/>
</service>

之后以调试模式启动应用程序,并在加载后单击“附加到进程”按钮。 在列表中,您应该看到 2 个进程:

com.yourpackage
com.yourpackage:sync

选择 :sync 一项,您就开始营业了。

【讨论】:

  • 这只是一个在单独进程中启动服务的示例。名称不必只是“:sync”,几乎可以是我们想要的任何名称。
猜你喜欢
  • 2019-08-17
  • 2016-10-27
  • 1970-01-01
  • 2016-12-10
  • 1970-01-01
  • 1970-01-01
  • 2021-06-08
  • 2017-07-17
  • 2019-12-25
相关资源
最近更新 更多