Android设备监视器无法打开 - 日志文件出现错误。

32
在Android Studio中,当我尝试运行Android设备监视器时,在日志文件中会出现以下错误:
    >!SESSION 2014-12-17 09:57:30.625 -----------------------------------------------
    eclipse.buildId=unknown
    java.version=1.8.0_25
    java.vendor=Oracle Corporation
    BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=pt_BR
    Command-line arguments:  -os win32 -ws win32 -arch x86_64 -data @noDefault

    >!ENTRY org.eclipse.osgi 4 0 2014-12-17 09:57:31.366
    !MESSAGE Bundle reference:file:org.apache.ant_1.8.3.v201301120609/@4 not found.

    >!ENTRY org.eclipse.osgi 4 0 2014-12-17 09:57:31.372
    !MESSAGE Bundle reference:file:org.apache.jasper.glassfish_2.2.2.v201205150955.jar@4

未找到。

    >!ENTRY org.eclipse.osgi 4 0 2014-12-17 09:57:31.373
    !MESSAGE Bundle reference:file:org.apache.lucene.core_2.9.1.v201101211721.jar@4 not

找到了。

    >!ENTRY org.eclipse.osgi 4 0 2014-12-17 09:57:31.439
    !MESSAGE Bundle reference:file:org.eclipse.help.base_3.6.101.v201302041200.jar@4 not

找到了。

    >!ENTRY org.eclipse.osgi 4 0 2014-12-17 09:57:31.439
    !MESSAGE Bundle reference:file:org.eclipse.help.ui_3.5.201.v20130108-092756.jar@4 not

找到了。

    >!ENTRY org.eclipse.osgi 4 0 2014-12-17 09:57:31.440
    !MESSAGE Bundle reference:file:org.eclipse.help.webapp_3.6.101.v20130116-182509.jar@4

未找到。

...

    >!ENTRY org.eclipse.osgi 4 0 2014-12-17 09:57:32.218
    !MESSAGE Application error
    !STACK 1
    >java.io.IOException: The folder "C:\Users\SAA%20PC\.android\monitor-workspace\.metadata" is read-only.
    > at org.eclipse.core.runtime.internal.adaptor.BasicLocation.lock(BasicLocation.java:206)
      at org.eclipse.core.runtime.internal.adaptor.BasicLocation.set(BasicLocation.java:164)
      at org.eclipse.core.runtime.internal.adaptor.BasicLocation.set(BasicLocation.java:137)
      at com.android.ide.eclipse.monitor.MonitorApplication.start(MonitorApplication.java:53)
      at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
      at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
      at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
      at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353)
      at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629)
      at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)
      at org.eclipse.equinox.launcher.Main.run(Main.java:1438)
有人知道可能是什么吗?感谢任何帮助。

你是如何解决这个问题的? - Pie
10个回答

72

如果您使用的是Windows操作系统,请尝试以管理员模式打开Android Studio (以管理员身份运行)


成功了!谢谢。你能解释一下问题的原因吗? - Evgeniy Mishustin
2
@LuciusHipan 管理员模式将进程提升以访问和写入 /AppData。从日志中看,该进程似乎想要更改 /Users 文件夹中的数据,但由于权限不足而无法执行。 - IronBlossom
1
有没有不以管理员身份运行的方法来完成这个任务? - Chris
@IronBlossom 我正在Linux上使用Android Studio,我该怎么做呢? - Naitik
@Naitik 尝试使用gksu或gksudo命令从sdk打开Android设备监视器。 - IronBlossom
显示剩余2条评论

39

我以前也遇到过这个问题。我通过在Windows任务管理器中结束或杀死"monitior.exe"进程来解决了这个问题。然后点击ADM(Android设备监视器),就可以正常工作了。


1
绝对应该被接受的答案...在Mac上也可以修复,只需强制退出监视器进程。 - Rich
没错!我有很多这样的程序在运行(因为我喜欢用力敲打它们,让它们工作 - 哈哈)。杀掉所有程序,然后回到VS,在Android工具栏中“打开Android设备监视器(DDMS)”。哇! - Adam Cox
修复Win7 + VS 2017上的问题。 - Bartosz
谢谢您的提示。这解决了多个问题 - 无法启动ADM,没有可调试的进程... - Hong

9
这是由于Android设备监视器无法定位jre的错误,因此为了解决这个问题,请按照以下步骤操作: 步骤1:在您的Android Studio中找到jdk路径,然后在jdk中定位jre并复制它。(在Linux系统中,jre位于android studio文件夹内) 步骤2:将复制的jre粘贴到(Android/Sdk/tools/lib/monitor-x86_64/)即monitor-x86_64目录下。
我尝试了Linux操作系统,Android设备监视器成功启动,没有任何错误。
谢谢,希望这能帮助到某人!

这个答案对我在Android Studio 3.0.1上有效。为什么会发生这种情况?是因为我的环境变量吗? - Davoud Badamchi

7
我在 Mac OS X 上遇到了同样的问题。
解决方法:
- 打开终端窗口 - 导航至您的 SDK - 定位 'tools' 文件夹 - 进入文件夹 - 运行: sudo ./monitor - 输入您的密码
完成!

4

这是由于更新SDK工具Android SDK Tools导致的问题。

  • 关闭Android Studio
  • 从SDK文件夹中打开SDK Manager.exe
  • 现在安装Android SDK工具,在我的情况下,工具版本为Rev.24.3.2
  • 打开Android Studio,它会显示有新工具可用,请安装它,安装完成后尝试重新启动。

2

无需重启Android Studio,只需按照以下步骤进行:

  1. 导航到C:\Android\sdk\tools
  2. 查找monitor.bat文件。
  3. 右键单击,并选择以管理员身份运行

1
非常好的答案,兄弟。你救了我的一天。 - Deepak Borade

2
我在Windows-10平台上使用jdk-12时,遇到了同样的问题。这是我所做的:
  1. monitor.exe文件的兼容性更改为“以管理员身份运行” - 没有起作用
  2. 检查Java路径(JAVA_HOME和PATH)变量是否已在环境变量中设置 - 没有起作用
  3. 最后卸载jdk-12并安装jdk-8,并更改环境变量中的路径(JAVA_HOME和PATH)变量 - 成功!!! 然后adb无错误地打开。
注:Original Answer翻译成“最初的回答”。

1
这是正确的答案。在我的情况下,我使用OpenJDK 14,但它不起作用。但是在我安装了Oracle JDK 8之后,它就可以工作了! - dns
1
它对我很有帮助。谢谢。我使用的是jdk-11。重新安装JDK8后,它可以正常工作。 - Dmitry Dronov

1

我在运行于Ubuntu 14.04LTS的Android Studio 2.3.1中遇到了同样的问题。 我使用的是openjdk7。 我将其更新为openjdk8,问题得到解决。


1
您不需要重启Android Studio,只需以管理员身份打开cmd并导航到您的SDK工具目录,然后输入monitor。在我的情况下,是C:\Android\sdk\tools\monitor。

1
欢迎来到堆栈溢出!像这样简短的回答可以发布在评论部分。 - cdomination
@cdomination: 我不同意。如果这是真正的新答案,应该发布为答案。 "简短" 不是问题,尽管 "完整性" 经常是(许多 "短" 答案没有足够的细节。这里不是这种情况 - 它真的就是那么简单。)好处:1)不会被埋在评论中。2)如果对其他人有用,他们可以投票支持它。3)如果需要改进,可以进行改进或评论。 - ToolmakerSteve

1

Xamarin的答案:

解决方案与Aman Kumar Gupta的答案相同。问题的原因是:

通常,标准的Xamarin会在此路径上安装Android Sdk C:\Program Files (x86)\Android\android-sdk,但由于路径中有空格,Android Studio无法接受此路径。因此,我不得不将路径更改为C:\Android\android-sdk,之后Android Studio和Visual Studio共享相同的路径。但突然间,Android设备监视器停止工作了。因为正如Aman Kumar Gupta所说,Jre位置无法识别。您只需从jdk文件夹中复制jre文件夹并粘贴到Android/Sdk/tools/lib/monitor-x86_64/即可解决此问题。


你可以在JDK 8中找到JRE:在我的情况下是C:\ Program Files \ Eclipse Foundation \ jdk-8.0.302.8-hotspot。 - Suchith
1
@Suchith 是的,那也可以。 - Emil
这对我来说很有效! - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接