2012-11-15 82 views
6

尝试启动avd时发生NullPointerException。我刚刚下载了适用于Mac的ADT软件包并运行了android avd。任何人都知道为什么会失败?无法运行Android虚拟设备管理器“android avd”获取NullPointerException

$ ./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) 
+0

你下载的平台,工具和平台,除了罚款?为SDK管理器运行'。/ android'来下载它们。 –

+0

是的。我有那些安装。试图删除并重新安装。 –

+0

即使在删除平台工具和平台后,我也得到了相同的NPE。 –

回答

4

我昨晚做了这个确切同样的问题,终于找到了让仿真器开始工作的途径:

列出可用的指标有:机器人名单的目标,

的Android创建AVD-N (名称)-t {}目标ID (用于{name}的我选择了平板电脑 - 相信其任意)

==仍然没有工作,但后来我发现=>

我右键单击manifest.xml文件上方的选定选项运行方式 - > 运行配置 - >选项卡上的目标,并选择创建的AVD。

(从Eclipse launch error when trying to run an Android app

+0

谢谢。我做了“android list targets”,然后“android创建avd -n AndySim -t 2”。模拟器正在工作。 –

2

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

.android/AVD/nameofphone.ini

在该文件的“路径=”设置是绝对的,所以如果你在你的文件移动将不再正确。将其更改为正确的绝对路径到同一目录中的avd文件解决了我的问题。

+0

我有完全的问题,要重新安装Windows 7,你救了我的一天。在我的情况下,我的用户文件夹下的avd路径,我有一些传统的AVD ini文件,其目标是Android版本,尚未安装。 – coocood

+0

由于某种原因,我没有nameofphone.avd作为avds之一,只是.ini文件。我刚刚删除了这个.ini。 – kaspartus

1

看起来像这个问题一直在固定在版本21.0.1预览1的SDK工具。

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

最可能的原因是不能被AVD管理解析无效的属性文件。更新到SDK工具的预览频道应该可以解决这个问题,或者您可以等待正式发布。

一旦我更新了,AVD管理器启动并在我的列表中显示无效的AVD,我可以删除它。

+0

您指出我的问题是正确的,但21.0.1不能解决我的问题。 @ mikeplate的解决方案可以帮助我。 – kaspartus

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的名称):

android delete avd -n Tab31 

之后,我能够启动AVD管理器没有任何问题。

+0

它的工作原理!谢谢。 –

+0

尝试了'android list avd',我在java.io.File处收到'线程中的异常'main“java.lang.NullPointerException'。 (File.java:277) at com.android.sdklib.internal.avd.AvdManager.parseAvdInfo(AvdManager.java:1616)..... – MSIslam

+0

这可能有所帮助:http://stackoverflow.com/questions/ 30345134/nullpointerexcepton功能于Android的工作室插件,Android的支持 – BreakingBrad

2

如果没有上述解决方案的工作,删除在主目录下的.android文件夹将工作

2

它通常是因为一个新的AVD的创建失败或您的自动真空淀积之一CONFIGS已损坏。

转到〜/ .android/AVD

检查自动真空淀积的列表。如果您认为其中一个AVD导致了这些问题,请使用sudo rm -r(唯一名称的AVD名称)*

这将删除该AVD。然后重新尝试的Android AVD

@绝命毒师的解决方案工作时的配置已损坏

相关问题