2012-11-15 79 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

@絕命毒師的解決方案工作時的配置已損壞

相關問題