AVD - PANIC: 无法打开... - 不是路径问题

36
我想写一个Android应用程序,今天早上我开始从http://developer.android.com下载adt-bundle-windows-x86_64-20130219中的JDK,eclipse,SDK等。
我现在遇到的问题是:

[2013-02-27 13:36:26 - Test2] Android启动!
[2013-02-27 13:36:26 - Test2] adb正常运行。
[2013-02-27 13:36:26 - Test2] 执行com.example.test2.MainActivity活动启动
[2013-02-27 13:37:27 - Test2] 使用虚拟设备'droidX2'启动新模拟器
[2013-02-27 13:37:27 - Emulator] PANIC:无法打开:droidX2

我整个早上都在网上查找关于AVD的帖子,但是没有一个帖子不涉及到路径混乱和找不到.ini文件的问题。我不认为我的路径有问题。AVD正在寻找D:\USERS\XXX\.android\avd上的文件,而这些文件就在那里。所以我不明白为什么模拟器无法打开。
我已经做了最基本的事情,比如删除并重新安装所有内容,阅读orace的注释等。基本上我被卡住了。这里有什么建议吗? adt-bundle-windows-x86_64-20130219是我在Windows 7(32位)上加载的。
我会满足于测试连接到PC的移动设备,但我也无法使其工作!
感谢任何指导。

1
尝试以管理员身份运行应用程序了吗? - Charan Pai
11个回答

76
这个问题已经被问了几次,试试以下方法:

创建一个名为ANDROID_SDK_HOME的环境变量,并将其设置为C:\Users\Administrator。打开Eclipse > Window > Preferences,点击Run/Debug和String Substitution,在其中添加一个名为user.home的新变量,并将其设置为C:\Users\Administrator。创建一个AVD并运行它。

Colin所提供的原始答案

一位Android项目成员在这里发表了意见:

作为解决方案,可以定义环境变量ANDROID_SDK_HOME,将其指向包含.android目录的目录。模拟器和SDK管理器将正确地识别它。


1
嗨,感谢您的回复。是的,我之前已经查看了那些帖子,并且现在再次仔细查看了一遍。没有任何变化。 - NigelT
很遗憾,没有变化。是否有任何日志或信息可以告诉我更多关于为什么“无法打开”的原因? - NigelT
11
已解决。我将环境变量ANDROID_SDK_HOME设置为指向包含你的.android目录的目录。我以前从未尝试过这样做。谢谢。 - NigelT
我将其设置为系统环境变量,然后它就可以工作了。不知道用户变量是否也可以工作。 - Raven Dreamer
8
好的提示,不要忘记在更改环境变量后重新启动Eclipse。我曾经没有这样做,一直不能理解为什么更改没有生效,直到我重新启动后,它们神奇地开始生效了。 - lambsubstitute
显示剩余2条评论

12

验证 avd 被搜索的位置与其实际创建位置不同。请查看下面的截图获取更多信息。

Android虚拟设备管理器 - 虚拟设备的位置


3
也许他想表达的是它应该是相同的。lol - Nezam
嘿,大家好,我刚刚发布了更正的位置,实际上与之前不同,并且在解决问题后我发布了屏幕截图。但是,有问题的人可以交叉检查高亮显示的路径是否相同。 - user2548816
有时候它会在那个位置寻找 AVD,但有时候 AVD 不在那里,而是在其他文件夹中创建,因此我们会遇到错误。所以将 AVD 放置在指定的文件夹中,问题就会解决。 - user2548816

6

另一种选择:创建符号链接...

在一个拥有管理员权限的命令提示符中,使用命令"cd"进入目录"C:\Users\YourUserName.android",然后使用以下命令创建指向avd目录的符号链接(注意斜杠方向):

mklink /D avd D:\_MyLibrariesDir\.android\avd

其中 "_MyLibrariesDir" 是指您的库(照片、文档等)文件夹所在的目录。

然后,您就完成了!


说明:这与 ANDROID_SDK_HOME 选项具有相同的效果,只是您现在可以浏览到[C:\Users\YourUserName\.android\avd\*][D:_MyLibrariesDir\.android\avd\*] 并且两者都将带您到同一位置。

这不同于快捷方式,因为快捷方式不作为目录,因此如果您只有“avd”文件夹的快捷方式,则无法进入“C:\Users\YourUserName\.android\avd*”,因为它会产生文件未找到错误,并且如果您尝试单击 avd 快捷方式文件,它会将您带到 [D:_MyLibrariesDir\.android\avd\*] 而不是让您留在 C 驱动器上。符号链接在用户和软件看来是透明的方式下,将位置之间联系起来。非常方便 :)


1
最好使用Junctions而不是目录符号链接,因为Junctions对应用程序是不可见的,除非它们在查找/打开文件时明确要求查看它们(以OPEN_REPARSE_POINT作为参数)。 - Smiley Barry
在Eclipse中使用字符串替换菜单对我来说无法正常工作,原因不明。然而,创建一个符号链接解决了这个问题。 我认为问题是由于我为我的数据文件夹(如我的文档、我的图片等)有一个单独的分区所致。 - mahela007

6

我通过以管理员身份运行Eclipse来解决AVD紧急问题。


已解决Visual Studio/Xamarin的问题。 - Hugo Delsing

3

在Ubuntu上,如果您以root(sudo)身份运行eclipse,则需要检查当前用户,否则eclipse找不到/root/.android设置用户主目录。

user.home /home/<user>/

将AVD文件复制到新目录中,然后更改权限。

cd /home/<user>/
chgrp <user> -R .android
chgrp <user> -R .android

2

如果其他方法都不能解决问题,那么只需赋值.android文件夹中的avd文件夹到C:\Users\<用户名>\.android即可。


1
尝试仅使用英语添加新的Windows管理员用户 这对我有效 用户名应为英文字母

我注意到以管理员身份运行Eclipse可以让您启动模拟器而不会出现AVD Panic问题。不确定英语部分是什么意思... - Tom Anderson
1
如果用户名非英语,这将会导致问题。 - Mohammed Subhi Sheikh Quroush

1
请检查一下您的“.android”文件夹,可能已经创建了另一个/重复的“.android”文件夹。如果您的答案是“是”,那么请按照以下步骤操作,因为在我的情况下就是这样发生的。 简单地说,我只保留了最新的“.android”文件夹(删除了重复的文件夹),并将其放在此目录“C:\ Users \ USER NAME \”中,然后模拟器开始正常工作。 干杯

0

使用Windows 7,Eclipse,Android SDK工具23.0.4

第一次按照http://developer.android.com/training/index.html上的确切指示操作时,每当“启动”模拟器时都会出现“PANIC: could not open..”错误。

解决方案:系统属性弹出窗口/环境变量/系统变量,添加新条目name="ANDROID_SDK_HOME",value="D:\DATA\Users\ThisUser\"然后就可以正常工作了!

"D:\DATA\Users\ThisUser\"是“.android/avd”文件夹所在的父文件夹。此处的avd文件夹路径为"D:\DATA\Users\ThisUser.android\avd"

请注意,您必须放置“D:\DATA\Users\ThisUser\",而不是“D:\DATA\Users\ThisUser**.android**”


0

设置ANDROID_SDK_HOME环境变量在Win7及更早版本中运行良好,但在Win8上没有帮助我。

对于那些使用Windows 8这个垃圾系统的可怜人,请前往您安装Android SDK的位置(例如:C:\SDK\AndroidC:\Users\JoeCitizen\AppData\Local\Android\android-sdk),并确保AVD Manager.exeSDK Manager.exe都设置为以管理员身份运行。一旦我这样做了,它就可以正常工作了。

又是一个令人困惑的问题,这本不应该成为问题,但由于Windows 8权限管理的完全失败而引起。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接