文档章节

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

caohong
 caohong
发布于 2014/07/15 12:48
字数 588
阅读 1084
收藏 0
点赞 0
评论 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
关于VirtualBox报 COM创建失败 Genymotion无法启动的解决办法

最近在做移动开发,想尝试PhoneGap混合框架。you know PhoneGap + JqueryMobile 加载速度非常之满。如果再使用Android原生模拟机 、、OMG、、我宁愿退出码农界!!幸好有神器Genymotion,启动...

JayPark不作死
2014/02/17
0
0
Android模拟器Genymotion的安装和使用

Genymotion模拟器是专门为Android开发量身打造的一个模拟器,超快的启动速度、支持多个虚拟设备同时运行等功能,是默认AVD望尘莫及的。Android开发人员再也不用为模拟器运行慢的问题抓狂了,...

大笨牛一只
2015/07/04
0
2
Linux下搭建Android开发环境

软件准备 1.1 virtualbox https://www.virtualbox.org/wiki/Downloads 选择菜单中的设置->安装增强功能 在虚拟器所在目录创建share目录,并设置为共享文件夹,用于windows和linux之间的文件共...

kimiz
2013/05/25
0
4
Oracle VM VirtualBox 安装和使用

原文同步至 VirtualBox 是一款开源虚拟机软件。VirtualBox 是由德国 Innotek 公司开发,由Sun Microsystems 公司出品的软件,使用 Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM Vi...

waylau
2015/06/03
0
7
VirtualBox安装android-x86及上网设置问题

最近一个android项目中使用了1920*1080分辨率的大屏,但是设备不在手边,androidSDK自带的模拟器又没有这么大的分辨率,没法测试,无奈之下就用VirtualBox+android-x86模拟了一个大屏环境。 ...

eZion
2012/11/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

华为nova3超级慢动作酷玩抖音,没有办法我就是这么强大

华为nova3超级慢动作酷玩抖音,没有办法我就是这么强大!华为nova3超级慢动作酷玩抖音,没有办法我就是这么强大! 在华为最新发布的nova 3手机上,抖音通过华为himedia SDK集成了60fps、超级...

华为终端开放实验室
24分钟前
0
0
多 SSH Key 实现同一台服务器部署多 Git 仓库

本文以以下需求为背景,介绍详细的做法: 需在同一台服务器同时部署两个不同的 Github 仓库(对 Bitbucket 等 git 服务同样适用) root 用户可在远程登录 SSH 后附上预期的 SSH Key 进行 gi...

yeahlife
26分钟前
0
0
003. es6数值的扩展

一、普通扩展 Number 方法,将字符串、数值转为十进制 : Number('0b111') Number.isFinite() 用来检查一个数值是否为有限的:Number.isFinite(15) Number.isNan() 用来检查一个值是否为NaN N...

秋季长青
40分钟前
0
0
rabbitmq学习(二)

基本队列:Producer直接发送信息到Queue中,Consumer接收Queue发送过来的信息 简而言之,一个生产者发送信息,一个消费者接收信息。 获取连接工具类: package com.example.demo.utils;i...

人觉非常君
44分钟前
0
0
C语言数组和指针的语法糖

对于C语言,我可以这样秀:比如当创建一个数组arr[n]之后,一般我们去遍历数组的时候是for (int i = 0; i < n; i++) { a[i]; }但是我知道下表访问符[]是个语法糖,也就是说a[i]在编译器看来是...

ustbgaofan
48分钟前
0
0
Call to undefined function bcmath()的解决方法

乐意黎的ECS主机环境,Centos7.2 + PHP7 由于使用了bcdiv()函数,运行时总在抛错。 Fatal error: Call to undefined function bcmath() in /usr/loca/apache/htdocs/... on line 4 一查得知:......

dragon_tech
54分钟前
0
0
css优先级

..

architect刘源源
58分钟前
0
0
【转】Twitter的分布式自增ID算法snowflake

结构 snowflake的结构如下(每部分用-分开): 0 - 0000000000 0000000000 0000000000 0000000000 0 - 00000 - 00000 - 000000000000 第一位为未使用,接下来的41位为毫秒级时间(41位的长度可以...

talen
今天
0
0
hive支持行级修改

Hive从0.14版本开始支持事务和行级更新,但缺省是不支持的,需要一些附加的配置。要想支持行级insert、update、delete,需要配置Hive支持事务。 一、Hive具有ACID语义事务的使用场景 1. 流式...

hblt-j
今天
0
0
Python---scrapy框架的学习

scrapy框架的学习 先熟悉下scrapy项目结构: scrapyTest/scrapyTest/ _init_.py用来初始化项目信息 scrapyTest/scrapyTest/ items.py文件为爬虫项目的数据容器文件,主要用来定义我们的数据....

android-key
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部