无法运行Android虚拟设备管理器“android avd”获取NullPointerException

时间:2012-11-15 00:19:06

标签: android adt

尝试启动avd时获取NullPointerException。我刚下载了适用于Mac的ADT软件包并运行了android avd。任何人都知道它会失败的原因吗?

$ ./android avd
java.lang.NullPointerException
    at com.android.sdklib.internal.avd.AvdInfo.getDeviceName(AvdInfo.java:158)
    at com.android.sdkuilib.internal.repository.ui.DeviceManagerPage.fillDevices(DeviceManagerPage.java:497)
    at com.android.sdkuilib.internal.repository.ui.DeviceManagerPage.fillTable(DeviceManagerPage.java:357)
    at com.android.sdkuilib.internal.repository.ui.DeviceManagerPage.createContents(DeviceManagerPage.java:259)
    at com.android.sdkuilib.internal.repository.ui.DeviceManagerPage.<init>(DeviceManagerPage.java:130)
    at com.android.sdkuilib.internal.repository.ui.AvdManagerWindowImpl1.createDeviceTab(AvdManagerWindowImpl1.java:210)
    at com.android.sdkuilib.internal.repository.ui.AvdManagerWindowImpl1.createContents(AvdManagerWindowImpl1.java:193)
    at com.android.sdkuilib.internal.repository.ui.AvdManagerWindowImpl1.open(AvdManagerWindowImpl1.java:133)
    at com.android.sdkuilib.repository.AvdManagerWindow.open(AvdManagerWindow.java:94)
    at com.android.sdkmanager.Main.showAvdManagerWindow(Main.java:369)
    at com.android.sdkmanager.Main.doAction(Main.java:311)
    at com.android.sdkmanager.Main.run(Main.java:119)
    at com.android.sdkmanager.Main.main(Main.java:102)

6 个答案:

答案 0 :(得分:13)

以下对我有用:

从命令行我导航到Android-SDK文件夹的tools文件夹。从那里我运行了这个命令:

android list avd

这产生了我所有虚拟设备的列表,但其中一个显示自己是问题所在。确切的输出如下:

The following Android Virtual Devices could not be loaded:
   Name: Tab31
   Path: /Users/User/.android/avd/Tab31.avd
   Error: Failed to parse properties from /Users/User/.android/avd/Tab31.avd/config.iniere

如果你看到这个,那么记下“名字”属性(在我的情况下为“Tab31”)并运行以下命令(显然用你的AVD替换我的AVD的名字):

android delete avd -n Tab31

之后我能够毫无问题地启动AVD Manager。

答案 1 :(得分:4)

昨晚我遇到了同样的问题,终于找到了让模拟器开始工作的方法:

列出可用目标:android list targets

android create avd -n {name} -t {targetID} (对于{name}我选择了平板电脑 - 相信它是随心所欲的)

==仍然没有工作,但后来我发现=&gt;

  

我在manifest.xml文件上方右键单击,选中选项Run As - &gt;   运行配置 - &gt;在选项卡Target上,选择AVD创建。

(来自Eclipse launch error when trying to run an Android app

答案 2 :(得分:2)

在移动Android SDK并通过设置环境变量ANDROID_SDK_HOME更改基本目录后,我遇到了同样的问题。原来在以下文件中有一个路径(ANDROID_SDK_HOME下面的路径)。

.android / AVD / nameofphone.ini

该文件中的“path =”设置是绝对的,因此如果您移动文件,它将不再正确。将其更改为同一目录中avd文件的正确绝对路径修复了我的问题。

答案 3 :(得分:2)

如果上述解决方案都不起作用,删除主目录中的.android文件夹将起作用

答案 4 :(得分:2)

通常是因为新AVD的创建失败或者您的AVD的配置已损坏。

转到〜/ .android / avd

检查AVD列表。如果你认为其中一个AVD导致问题,sudo rm -r(AVD NAME NAME)*

这删除了AVD。然后重新尝试android avd

@ BreakingBad的解决方案正常工作,除非配置已损坏

答案 5 :(得分:1)

SDK工具的版本21.0.1预览1 中似乎已经修复了此问题。

http://code.google.com/p/android/issues/detail?id=40400

最可能的原因是AVD Manager无法解析的无效属性文件。更新到SDK工具的预览频道应该解决这个问题,或者你可以等待官方发布。

更新后,AVD管理器启动并在我的列表中显示无效的AVD,我可以将其删除。