VirtualBox上编译android遇到共享文件夹引起的问题

后记:

本文解决了VirtualBox里共享文件夹的两个问题:

1. 无法访问Host机的共享文件夹;

2. 无法在共享文件夹里创建symbol link;

但解决完上面的问题之后,最终virtualbox用共享文件夹编译还是会遇到问题。


故事:用mac系统,但芯片厂商提供的方案里没有提供mac系统编译android,只好装了虚拟机。虚拟机里parallels desktop算是比较好用,不过坑爹的是,编译时期make命令挂了,提示"segmentation fail",Google未果。只好重新启用virtualbox。

在虚拟机管理里设置了共享文件夹,之后发现权限不够:

➜  ~  ls /media/sf_AndroidBuild 
ls: 无法打开目录/media/sf_AndroidBuild: 权限不够

解决方法是用mount命令挂载进来

➜  ~  sudo mkdir -m 755 /mnt/AndroidBuild
➜  ~  sudo mount -t vboxsf -o AndroidBuild /mnt/AndroidBuild

mount命令至少需要知道三个信息:

  1. 要加载对象的文件系统类型:vboxsf

  2. 要加载对象的设备名称:AndroidBuild,就是在虚拟机管理设置的名字

  3. 要加载到哪个目录下:/mnt/AndroidBuild

挂载之后,当前用户没有写权限,加上参数`-o`:

➜  ~  sudo mount -t vboxsf -o rw,uid=1000,gid=1000 AndroidBuild /mnt/AndroidBuild

其中uid和gid表示当前用户的id,可以用`id`命令查到:

➜  ~  id caohong
uid=1000(caohong) gid=1000(caohong) groups=1000(caohong),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),109(lpadmin),124(sambashare)

结果如下:

➜  ~ /mnt/AndroidBuild/LL95  mount | grep vboxsf    
AndroidBuild on /media/sf_AndroidBuild type vboxsf (gid=999,rw)
AndroidBuild on /mnt/AndroidBuild type vboxsf (uid=1000,gid=1000,rw)

这下可以了吧,你还会遇到编译时的错误:“ln: 无法创建符号链接"out/target/": 只读文件系统”

答案在这儿找到:cannot create symlinks in virtualbox shared folders virtualbox在某版本之后禁用了在共享文件夹里创建链接(symbol link),workaround的方法是:

➜  ~ VBoxManage setextradata ubuntu64 VBoxInternal2/SharedFoldersEnableSymlinksCreate/AndroidBuild 1
➜  ~ VBoxManage getextradata ubuntu64 enumerate
Key: GUI/InfoDlgState, Value: 400,450,normal
Key: GUI/LastCloseAction, Value: PowerOff
Key: GUI/LastGuestSizeHint, Value: 640,480
Key: GUI/LastNormalWindowPosition, Value: 32,44,640,342,max
Key: GUI/LastScaleWindowPosition, Value: 20,52,1245,694,max
Key: GUI/VirtualScreenToHostScreen0, Value: 1
Key: VBoxInternal2/SharedFoldersEnableSymlinksCreate/AndroidBuild, Value: 1

`ubuntu64`是虚拟机的名字,`AndroidBuild`是共享文件夹的名字,设置成功后用`VBoxManage getextradata`可以查到,重启搞定

转载于:https://my.oschina.net/caohong/blog/290919

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值