文档章节

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

caohong
 caohong
发布于 2014/07/15 12:48
字数 588
阅读 1118
收藏 0

后记:

本文解决了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`可以查到,重启搞定

© 著作权归作者所有

共有 人打赏支持
caohong
粉丝 0
博文 21
码字总数 5649
作品 0
昌平
30.virtualbox安装增强包及配置共享文件夹

因为需要在host及虚拟机间传输数据,想使用共享文件夹。但是单独设置了共享文件夹后在centos里找不到共享文件夹,看了下要安装增强包。好吧,顺便也解决下鼠标切换的问题,省的老是按右CTL切...

quanpower
2013/08/03
0
0
VirtualBox中ubuntu配置共享文件夹

VirtualBox中安装ubuntu serve后,需要配置共享文件夹,用于方法host windows中的数据: 点击VirtualBox中的增强工具,VirtualBox会把工具加载到虚拟光驱中。 2, Mount 光驱: mount /dev/cd...

lgl88911
2015/05/17
0
0
VirtualBox下自定义android-x86的分辨率

Virtual的安装 下载地址: http://download.virtualbox.org/virtualbox/4.2.12/VirtualBox-4.2.12-84980-Win.exe 下载后按傻瓜式安装,有提示安装驱动的选择确定,这部分不做介绍,不会的请百...

小牧
2013/04/17
0
2
使用 Ubuntu 编译哔哩哔哩开源播放器最新 ijkplayer 0.8.8 源码

0x0000 安装 Ubuntu 我用的是 Oracle VM VirtualBox 虚拟机来安装 Ubuntu 64位,不会对已安装的系统造成什么影响。在新建的虚拟机时配置内存要选用大一点的,第一次我安装全是默认项,卡的要...

克里迪亚
05/23
0
0
android模拟器太慢怎么办?

开发的时候,模拟器实在太慢了,而且我的PC也变得很慢,写代码的时候上网查个东西都很慢,怎么办? 一个办法是买个android手机,这个日后再说; 另一个办法是virtualBox + Android x86;and...

mayqlzu
2013/01/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

centos7安装Nginx

安装所需环境 一. gcc 安装 安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装: yum install gcc-c++ 二. PCRE pcre-devel 安装 PCRE(Perl Co...

狼王黄师傅
18分钟前
0
0
dubbo+apollo微服务开发指南

为了大家比较快速的开发微服务,规范dubbo,spring,mybatis,hessian,netty的版本和用法,我写了一个demo,下面对demo的功能做个简单的介绍,如有疑问的地方,可以私下问我。 微服务项目示例 ...

PageYi
20分钟前
0
0
android流式布局、待办事项应用、贝塞尔曲线、MVP+Rxjava+Retrofit、艺术图片应用等源码

Android精选源码 android模仿淘宝首页效果源码 一款艺术图片应用,采用T-MVVM打造 Android MVP + RxJava + Retrofit项目 android流式布局实现热门标签效果 android仿淘宝客户端商品详情页效果...

Android爱开源
22分钟前
2
0
一步一步安装hive

The Apache Hive ™ data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage using SQL. Structure can be projected onto d......

hnairdb
26分钟前
1
0
【WebService 系列二 使用JAX-WS开发示例程序】

1、服务端代码 1.1、编写SEI SEI即(Service Endpoint Interface)SEI在ws中称为portType,在java中称为接口 package jaxws.server;/** * @className: HelloService * @description: jax......

HansonReal
35分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部