6

尝试启动 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)
4

6 回答 6

13

以下对我有用:

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

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 Manager。

于 2012-12-07T00:03:51.410 回答
4

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

列出可用的目标: android list targets

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

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

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

(来自尝试运行 Android 应用程序时的 Eclipse 启动错误

于 2012-11-16T05:59:02.030 回答
3

如果上述解决方案均无效,则删除主目录中的 .android 文件夹将有效

于 2016-03-14T16:31:03.043 回答
2

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

.android/avd/nameofphone.ini

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

于 2012-11-25T16:56:18.880 回答
2

这通常是因为创建新的 AVD 失败或其中一个 AVD 的配置已损坏。

转到 ~/.android/avd

检查 AVD 列表。如果您认为其中一个 AVD 导致了问题,请 sudo rm -r (UNIQUE PART OF AVD NAME)*

这将删除该 AVD。然后重试android avd

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

于 2016-05-09T23:32:01.547 回答
1

看起来此问题已在 SDK 工具的21.0.1 预览版 1 中得到修复。

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

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

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

于 2012-12-05T23:51:21.463 回答