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 フォルダーの tools フォルダーに移動しました。そこから、次のコマンドを実行しました。

android list avd

これにより、すべての仮想デバイスのリストが作成されましたが、そのうちの 1 つが問題であることがわかりました。正確な出力は次のとおりです。

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

これが表示された場合は、「Name」プロパティ (私の状況では「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} には Tablet を選択しました - 恣意的だと​​思います)

== まだ機能していませんでしたが、発見しました =>

manifest.xml ファイルの上で右クリックし、オプション [Run As] -> [Run Configurations] -> [Target] タブを選択し、[AVD created] を選択しました。

( Android アプリを実行しようとしたときの Eclipse 起動エラーから)

于 2012-11-16T05:59:02.030 に答える
2

Android SDK を移動し、環境変数 ANDROID_SDK_HOME を設定してベース ディレクトリを変更した後、同じ問題が発生しました。次のファイル内にパスがあることがわかりました (ANDROID_SDK_HOME の下のパス)。

.android/avd/nameofphone.ini

そのファイルの「パス=」設定は絶対なので、ファイルを移動すると正しくなくなります。それを同じディレクトリ内のavdファイルへの正しい絶対パスに変更すると、問題が修正されました。

于 2012-11-25T16:56:18.880 に答える
2

通常、新しい AVD の作成に失敗したか、いずれかの AVD の構成が破損していることが原因です。

~/.android/avd に移動します

AVD のリストを確認します。これらの AVD のいずれかが問題の原因であると思われる場合は、sudo rm -r (AVD 名の一意の部分)*

これにより、その 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 Manager によって解析できなかった無効なプロパティ ファイルです。SDK ツールのプレビュー チャネルに更新すると、これが修正されるはずです。または、公式リリースを待つこともできます。

更新すると、AVD Manager が起動し、リストに無効な AVD が表示されましたが、これを削除できました。

于 2012-12-05T23:51:21.463 に答える