当我运行android
命令时,我在 bash 中出现以下异常,但使用 sudo 一切正常。
java.lang.NullPointerException
at com.android.sdklib.internal.avd.AvdManager.parseAvdInfo(AvdManager.java:1387)
at com.android.sdklib.internal.avd.AvdManager.buildAvdList(AvdManager.java:1366)
at com.android.sdklib.internal.avd.AvdManager.<init>(AvdManager.java:315)
at com.android.sdklib.internal.avd.AvdManager.getInstance(AvdManager.java:325)
at com.android.sdkuilib.internal.repository.UpdaterData.initSdk(UpdaterData.java:266)
at com.android.sdkuilib.internal.repository.UpdaterData.<init>(UpdaterData.java:123)
at com.android.sdkuilib.internal.repository.ui.SdkUpdaterWindowImpl2.<init>(SdkUpdaterWindowImpl2.java:104)
at com.android.sdkuilib.repository.SdkUpdaterWindow.<init>(SdkUpdaterWindow.java:87)
at com.android.sdkmanager.Main.showSdkManagerWindow(Main.java:339)
at com.android.sdkmanager.Main.doAction(Main.java:322)
at com.android.sdkmanager.Main.run(Main.java:119)
at com.android.sdkmanager.Main.main(Main.java:102)
通常问题在于缺少 java,但java -version
运行正常。看起来 android 没有权限使用 java,但怎么会这样呢?Apple 和 Oracle Java 也是一样。
序列号 MacOS 10.7.5
答案1
我不知道为什么android
命令可以通过 sudo 成功运行,但我找到了一个解决方案。
解决该问题的方案:(MacOS 10.7.5的路径)
- 检查 JDK 是否安装。/Library/Java/JavaVirtualMachines
- 打开 ~/.android/avd - 这是一个包含 avds 的文件夹(对我来说没有 .avd 文件,我只是删除了相应的 .ini)
在这个异常中,我们可以发现parseAvdInfo中存在问题。(在21.0.1 sdk tools版本中,这个问题没有得到解决,并android
抛出了这个异常。可能以后在更新android sdk时会找到解决方案)