Android Studio无法拍摄设备的屏幕截图

时间:2019-01-09 21:12:43

标签: android android-studio android-studio-3.0

当我尝试使用screenshot of physical device from the Debug tab时,Android Studio有时会出现以下错误。

这些错误显示在“调试”标签的“转储#1”子标签上:

"GAC_Executor[0]@5406" prio=5 tid=0x51eb nid=NA waiting
  java.lang.Thread.State: WAITING
     blocks GAC_Executor[0]@5406
      at java.lang.Object.wait(Object.java:-1)
      at java.lang.Thread.parkFor$(Thread.java:2135)
      - locked <0x1aa5> (a java.lang.Object)
      at sun.misc.Unsafe.park(Unsafe.java:358)
      at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
      at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059)
      at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
      at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1087)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1147)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
      at Os.run(SourceFile:5)
      at java.lang.Thread.run(Thread.java:764)

另一种错误类型:

"CrAsyncTask #1@4908" prio=5 tid=0x161 nid=NA waiting
  java.lang.Thread.State: WAITING
     blocks CrAsyncTask #1@4908
      at java.lang.Object.wait(Object.java:-1)
      at java.lang.Thread.parkFor$(Thread.java:2135)
      - locked <0x180a> (a java.lang.Object)
      at sun.misc.Unsafe.park(Unsafe.java:358)
      at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
      at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2101)
      at java.util.concurrent.ArrayBlockingQueue.poll(ArrayBlockingQueue.java:402)
      at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1086)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1147)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
      at java.lang.Thread.run(Thread.java:764)

另一种错误类型:

"FinalizerDaemon@6149" daemon prio=5 tid=0x158 nid=NA waiting
  java.lang.Thread.State: WAITING
     blocks FinalizerDaemon@6149
      at java.lang.Object.wait(Object.java:-1)
      at java.lang.Object.wait(Object.java:422)
      at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:188)
      - locked <0x1808> (a java.lang.Object)
      at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:209)
      at java.lang.Daemons$FinalizerDaemon.runInternal(Daemons.java:232)
      at java.lang.Daemons$Daemon.run(Daemons.java:103)
      at java.lang.Thread.run(Thread.java:764)

另一种错误类型:

"CleanupReference@5418" daemon prio=5 tid=0x16b nid=NA waiting
  java.lang.Thread.State: WAITING
     blocks CleanupReference@5418
      at java.lang.Object.wait(Object.java:-1)
      at java.lang.Object.wait(Object.java:422)
      at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:188)
      - locked <0x180e> (a java.lang.Object)
      at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:209)
      at ayH.run(SourceFile:3)

另一种错误类型:

"ReferenceQueueDaemon@6148" daemon prio=5 tid=0x157 nid=NA waiting
  java.lang.Thread.State: WAITING
     blocks ReferenceQueueDaemon@6148
      at java.lang.Object.wait(Object.java:-1)
      at java.lang.Daemons$ReferenceQueueDaemon.runInternal(Daemons.java:178)
      - locked <0xc44> (a java.lang.Class)
      at java.lang.Daemons$Daemon.run(Daemons.java:103)
      at java.lang.Thread.run(Thread.java:764)

另一种错误类型:

"FinalizerWatchdogDaemon@6150" daemon prio=5 tid=0x159 nid=NA sleeping
  java.lang.Thread.State: TIMED_WAITING
     blocks FinalizerWatchdogDaemon@6150
      at java.lang.Thread.sleep(Thread.java:-1)
      at java.lang.Thread.sleep(Thread.java:373)
      - locked <0x1809> (a java.lang.Object)
      at java.lang.Thread.sleep(Thread.java:314)
      at java.lang.Daemons$FinalizerWatchdogDaemon.sleepFor(Daemons.java:342)
      at java.lang.Daemons$FinalizerWatchdogDaemon.waitForFinalization(Daemons.java:364)
      at java.lang.Daemons$FinalizerWatchdogDaemon.runInternal(Daemons.java:281)
      at java.lang.Daemons$Daemon.run(Daemons.java:103)
      at java.lang.Thread.run(Thread.java:764)

通常,我可以通过重新启动Android Studio来解决此问题,但今天我可以更一致地得到它。

我也尝试过重新启动Mac,重新启动Nexus 5x物理设备,将设备重新插入其他端口并发出adb kill-server命令。这些都没有帮助。

任何人都知道导致此问题的原因以及如何避免它吗?

2 个答案:

答案 0 :(得分:1)

这可能来自Android Studio 3.2。您可以将其更新为较新的版本吗?

我在Mac上使用3.2.1(2018年10月9日)没有任何问题。

答案 1 :(得分:1)

如果将调试器附加到应用程序,然后尝试在“工具Windows”>“调试”中按摄像机图标,就会发生这种情况。实际上,调试窗口上的摄像机图标用于线程转储,而不用于屏幕截图。因此,这具有误导性。

您必须按Logcat窗口>摄像机。请按照

中提到的以下说明进行操作

https://developer.android.com/studio/debug/am-screenshot

在连接的设备或仿真器上运行您的应用程序。如果使用连接的设备,请确保已启用USB调试。 在Android Studio中,选择“视图”>“工具窗口”>“ Logcat”以打开Logcat。 从窗口顶部的下拉列表中选择设备和进程。 单击窗口左侧的“截屏”。