Android SDK的默认目录导致的AVD启动时各种找不到

各位,有木有被下面各种启动AVD报错的问题纠结到:

PANIC: Could not open: ANDROID_SDK_HOME=D:/android-sdk-windows/tools\.android/avd/aa.ini
=======================================

PANIC: ANDROID_SDK_HOME is defined but could not find Test.ini file in $ANDROID_SDK_HOME\.android\avd

==================================

PANIC: HOME is defined but could not find Test.ini file in $HOME\.android\avd

==================================


类似的错误各种搜索也能找到一堆解决方案,可能在大多数情况下都能解决,可惜很不幸,我遇到了极少数情况,所有搜索引擎找到的答案都无法解决,包括中文的和英文的。

我遇到的是上面三种中的第三种。



和前面的是不是很像。但是还是有差别的:一个是HOME,一个是ANDROID_SDK_HOME,而后而要找的文件却是一样的文件。

我的环境:

win8.1

android-studio1.0

sdk manager 24

网上找到的答案无非是设置环境变量,涉及到的环境变量主要有:ANDROID_SDK_HOME、ANDROID_AVD_HOME、ANDROID_SDK

这个设置就不说了,也有回复说环境变量要加上$符号,也就是说设置环境变量的时候变量名为:$ANDROID_SDK_HOME.

而我遇到的错误提示是$HOME,那么是不是代表我需要配置的变量是$HOME呢,非常不幸,各种配置全部试遍全都不行。

====================纠结的分割线=======================

这里不得不提一下win8用户文件夹的问题。默认情况下win8的默认文件夹是放在C:\Users\yaolei\中的。

大家也都知道这个文件夹的数据膨胀极度恶心,很多人都用乾坤大挪移大法将其搬家,不过都非常麻烦,搬家的过程中也常常出现各种问题,我比较懒,使用win8自带的小搬家功能,将桌面、文档、下载等几个目录转移到了D盘。就是这样一个不经意的操作给我带来了麻烦。

于是乎我的电脑中一些用户文件夹的结构变成了下面这样子:

用户文件夹:c:\users\yaolei

桌面文件夹:d:\document\desktop

下载文件夹:d:\document\download


经过多次试验,我发现这样一个现象:

当我用AVD Manager创建一个avd时,avd的目录存放在了:d:\document\.android\avd目录中。


注意:一般情况下android的各种工具会在用户文件夹下创建一个类似.android的文件夹,也就是说会放在c:\users\yaolei\.android目录

按照这个习惯创建的avd不应该是在c:\users\yaolei\.android\avd目录中么,怎么会跑到了d:\document\.android\avd文件夹呢?

在这种情况下启动avd的时候始终报错、找不到$HOME\.android\avd,各种baidu、google都无法找到答案,当发现了上面的现象后,我把d:\user\.android\avd文件夹中的内容复制到了c:\users\yaolei\.android\avd目录中,再次打开avd Manager,点击start后,居然启动了。

Why?

于是再做了一个实验,将桌面文件夹从d:\user\desktop重新移回到了c:\users\yaolei\desktop文件夹。


再次使用AVD Manager创建avd,创建完成后发现avd的默认路径神奇的变成了c:\users\yaolei\.android\avd目录


这时再启动AVD,一切正常。。。。。。

法克,我有种想骂人的冲动。

===========================================================

原来在AVD Manager看来,$HOME目录其实不是用户文件夹(即:c:\users\yaolei),而是”windows桌面的实际路径/..“,注意最后面还有一个..,这代表的是上一级目录,而%USERPROFILE%在windows系统中指用户文件夹根目录,也就是c:\users\yaolei,这要样一来,如果你的桌面路径和用户文件夹没有在一起的话,很不幸,无论怎么样设置环境变量,你都是无法正常使用AVD的。

换句话说,AVDManager创建AVD的时候使用的是“桌面/..”为默认路径,而执行的时候却使用%USERPROFILE%作为默认路径,查阅了一些资料发现如下命令:

创建一个新的AVD:android create avd -n GPhone -t 6 -c 52M -p C:\AVD\ -s QVGA
运行指定的AVD:emulator -avd GPhone

从这儿可以看到创建和运行是两套程序,其中的第一个android是一个bat文件,而emulator是一个exe文件,都放在android-sdk\tools文件夹中,我并没有深入研究这其中的机制是什么,同时我在解决上面的问题时也尝试使用了配置环境变量的办法,都没能解决。

不知道android是出于什么原因造成这样的现象,还是我遗漏了什么问题,期待有大神能解答我的疑惑。


  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是老姚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值