最新消息:20190529 VPS服务器已从腾讯云香港换为Vultr新加坡,主题仍用朋友推荐的大前端D8

【已解决】Android Virtual Device Manager失去响应后,被强制关闭,之后再也无法打开Android Virtual Device Manager

Android crifan 2759浏览 0评论

【问题】

在:

【记录】创建AVD(Android Virtual Device)安卓虚拟设备

过程中,创建AVD过程中,由于界面失去响应:

然后就强制关闭了。

结果再次重新启动ADT后,结果始终无法再次打开对应的Android Virtual Device Manager。

 

【解决过程】

1。随便折腾其他的,试试能否救回来。。。

去试了试更新:

check for updates

contact software sites

 

结果下载要下载半天,所以干脆,取消算了。

2.打算重新从之前的:

adt-bundle-windows-x86_64.zip

解压出来一份,然后覆盖当前的,试试可否恢复Android Virtual Device Manager。

结果覆盖过程中,竟然又遇到权限问题,没法覆盖。

索性,完全删除旧的。

再重新解压一份,重新开始算了。

3.更悲催的是,删除的时候,也遇到了问题,部分东西没法完全删除掉。

好像说是某些东西真正被使用中。

后来才想到,估计是之前强制关闭eclipse,导致某些java的线程没彻底清除所导致此问题的。

所以,去进程中看看去。

发现进程中还有个eclipse.exe呢,强制终止掉。

4.然后重新初始化ADT。

结果由于没有删除之前的项目DownloadSongtasteMusic,然后打开后,就可以看到当前的DownloadSongtasteMusic项目了。

但是结果还是点击Android Virtual Device Manager而无反应。

所以,彻底删除此项目再说。

然后重新打开,结果提示DownloadSongtasteMusic已空,没法打开。

还是残存一些东西,没有彻底清空。

5.所以,再次,把所有的,包括Eclipse的workspace都清除了。

然后重新弄一遍ADT再说。

结果全新的去弄了一遍,结果还是点击Android Virtual Device Manager无反应。

去看了看进程,现在有eclipse.exe和adb.exe

感觉像是当前系统中的eclipse哪方面有问题了。

所以去重新启动电脑,回来再看看是否正常。

6.重新启动电脑后,结果也还是无法启动Android Virtual Device Manager。

试了试直接运行app,弹出提示,没有找到AVD,然后想要去创建,也还是无法调出对应的Android Virtual Device Manager界面。

7.看起来像是,当前Win7中,已经被导入了什么方面的配置,然后该配置被破坏了,所以无论如何换用Eclipse,结果也还是无法打开AVD的管理器了。

但是现在也没法验证。

不过按理来说,Eclipse好像也都是根据当前自己的workspace的内的配置,去管理项目的,包括其ADT内的AVD,所以不应该出现这种问题才对。

8.参考:

Managing AVDs with AVD Manager

去到命令行中试试。

结果出错:

D:\tmp\tmp_dev_root\android\adt-bundle-windows\sdk\tools>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)

参考:

蓝屏重启后,Android SDK AVD 一闪而过,无法启动

去删除用“用户下面.android”目录即可。

所以去找到我此处对应的.android目录:

C:\Users\CLi\.android

然后删除之。

同时发现,一个变态的现象:

.android

这个目录,竟然占用了:

14G

之多!!!

看来,很明显是当初创建AVD的时候,AVD管理器去帮我们创建了对应的sdcard等文件,导致对应的占用如此大的空间。

此处很明显的是:

AVD管理器,并没有告诉我们,或者说并没有提示我们:

(1)会在自己的用户目录下,创建对应的文件;

(2)要创建的文件,是和你当前设置的sdcard,usb存储等大小是挂钩的。

另外:

(3)ADT之前,也没有提示我们,会同时在当前用户下,创建对应的.android文件夹。

 

由此,导致了,虽然彻底删除了ADT所有的内容,

结果重新用一个新的ADT,却还是会导致无法正常使用ADT(中的AVD)

所以,结论是:

ADT这套系统,还是做得不够人性化,对于很多内部过程,

尤其是像上面三点,应该在文档中提示出来,或者有弹出对话框,和对应的解释。

以引起开发者注意;

否则尼玛,幸亏我C盘够大,否则立刻就被14G大小的AVD占满了,很容易就导致主机挂掉了。

这些细节,难道设计ADT的人没有想到吗???

无语了。

 

后来,专门去看了看:

D:\to_del\android\.android\avd中有:

  • 配置文件:AVD_Samsung_Galaxy_S_II.ini
  • 文件夹:D:\to_del\android\.android\avd\AVD_Samsung_Galaxy_S_II.avd
    • 中有对应的:
      • 14G的sdcard.img
      • 4M的userdata.img

 

所以,目前不能改变ADT的前提下,知道了现在要:

创建AVD的时候,设置SD卡大小,尽量小点,比如256MB之类的,只要够开发测试时候使用,即可。

千万不能搞个多少G,否则:

(如果不是你选择了对应的sdcard文件的话),ADT直接在你的硬盘上创建一个对应的大小sdcard.img,

而且位置是,你当前用户所在的.android文件夹下面的

往往都是C盘 => 导致你C盘空间被占用 => 如果本身C盘空间就紧张 => 主机直接死机/挂掉/蓝屏 了。。。。

 

对应的,把.android全部干掉后,再次运行:

D:\tmp\tmp_dev_root\android\adt-bundle-windows\eclipse\eclipse.exe

就又出现那个问你是否运行google的统计功能的对话框了。

然后就正常了:

点击AVD manager,就可以弹出对话框了:

can show avd manager

 

 

【总结】

1.ADT,还是做得不够好,不够人性化;

2.自己创建AVD时,sd卡的容量设置,要么选择一个现存的文件;要么自己设置一个值,不要太大,比如128MB,256MB。

否则如果设置太大,(如果用户文件夹在C盘)导致直接创建一个同样大小的img文件:

C:\Users\用户名\.android\avd\AVD设备名\sdcard.img

从而占用C盘对应大小的空间,可能会导致蓝屏,死机等问题。

转载请注明:在路上 » 【已解决】Android Virtual Device Manager失去响应后,被强制关闭,之后再也无法打开Android Virtual Device Manager

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (4)

  1. 你说的真够详细,但是不知道管用不用,我还在测试当中
    huaixiaozi2年前 (2017-12-13)回复
  2. 你的文章解决了我的问题,谢谢!
    somebody6年前 (2014-01-07)回复
  3. 第一次用,碰上了同样的问题,太感谢分享经验!
    帽子6年前 (2013-06-03)回复
66 queries in 0.084 seconds, using 18.73MB memory