尝试启动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)
答案 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创建。
答案 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,我可以将其删除。