Docker与Android Studio的冲突问题
在行业内,VisualBox、VMware、Hyper-V冲突也不是什么秘密了
我在公司的电脑上先安装了Docker,并在安装Docker之前在BIOS中开启了虚拟化支持,所以在启动Docker时没有任何问题。


查看Windows功能,其中Hyper-V已经完全安装了

接下来,因为需要开发React Native应用,安装了Nodejs后,且为了调试方便安装了Android Studio,(React Native开发环境配置可以参考https://reactnative.cn/docs/0.50/getting-started.html#content) 但在运行项目时,会出现以下错误
以下的错误意思是,Android Studio与Hyper-V产生了冲突,需要运行命令将Hyper-V功能关闭

好,既然Android Studio给出了提示,那么我就需要运行以上提示给出的命令
使用管理员权限打开一个命令行窗口,运行给出的命令
#是不是一定要在C:\Windows\system32>目录运行命令不是太清楚,但我运行成功了
bcdedit /set hypervisorlaunchtype off

接着Android Studio又给出了另一个错误提示,还是需要先将Hyper-V先关掉才可以。

因为现时Docker暂时不需要用到,所以先暂时关闭

将Android Studio的错误提示,点击OK关闭错误提示。
将Android Studio的项目关闭再重新打开,依然看到Hyper-V的错误信息,依然不可运行,原因是我运行了命令后,并没有重启

当我重启电脑后,再尝试运行,确实已经没有了提示,项目已经正常运行


这时就有一个问题了,我已经成功运行了React Native,或者说Android Studio,那么是不是可以同时运行Docker?
很抱歉,我的机器暂时不行!似乎有一些人有了解决方案,https://stackoverflow.com/questions/43134006/how-can-i-run-both-docker-and-android-studio-emulator-on-windows

或者我们可以微软的Android模拟器,https://www.visualstudio.com/zh-hans/vs/msft-android-emulator/来解决这个问题。
简单来说,就是Docker需要使用到Hyper-V,而Android Studio是使用HAXM(硬件加速执行管理器),而HAXM与Hyper-V使用相同的虚拟化扩展,这就意味着,它们之间是冲突的,且不能同时运行两个技术,
且电脑中只能运行其中一个技术。
2018-08-01 更新
参考了一些网上的说法,似乎Docker与Android Studio是没办法在同一个电脑上安装的,但是找到一个折中的方法,就是安装Docker Toolbox
Docker Toolbox即是在外面安装了一个虚拟机给Docker使用,而且Docker Toolbox不需要使用到Hyper-V
Docker Toolbox地址:https://docs.docker.com/toolbox/toolbox_install_windows/



安装完成后,会在网站生成三个图标

打开Docker Quickstart Terminal图标,需要下载一个boot2docker的镜像,另外需要分配IP地址等,完成后,即会出现一个鲸鱼的图标
如果下载失败,地址为https://github.com/boot2docker/boot2docker/releases,可以手动下载后放入至文件夹 C:\Users\chenwes(用户名)\.docker\machine\cache

最后放一个,同时运行Docker与Android Studio的图片


2019-02-25更新
查看到原有问答,已经解决了该问题
只需要将Windows功能中的Windows Hypervisor Platform勾选即可,但效果如何,我测试还是行不通的

2019-05-06更新
查看到另一个Google的解答
https://android-developers.googleblog.com/2018/07/android-emulator-amd-processor-hyper-v.html
也有微软给出的方案
https://devblogs.microsoft.com/visualstudio/hyper-v-android-emulator-support/
Docker与Android Studio的冲突问题的更多相关文章
- Android Studio一些常用快捷键及快捷键冲突解决
1. 最近在自学Android,也是边看书边写一些Demo,由于知识点越来越多,脑子越来越记不清楚,所以打算写成读书笔记,供以后查看,也算是把自己学到所理解的东西写出来,献丑,如有不对的地方,希望大家 ...
- Win 10 下 android studio显示 Intel haxm无法安装,以及VT-X和hyper-x的冲突问题
我 的电脑是神舟战神k650c i7 D4,处理器是Intel core i7 4710-MQ,系统是win 10的 我心血来潮想学习一下安卓开发,就首先安装了android s ...
- android studio 中如何合并冲突(转)
合并分支,解决冲突 执行Git merge ,如果有冲突,就会出现如下格式: <<<<<<< HEAD 这个位置的内容就是当前所在分支的内容 ======= ...
- Android Studio中依赖第三库导致support版本冲突解决方案
1.今天在Android Studio的app/gradle文件中依赖文件选择器的第三方库:“com.leon:lfilepickerlibrary:1.8.0” 时,github地址:https:/ ...
- Android Studio 解决 Gradle 依赖冲突的问题
Android Studio 解决 Gradle 依赖冲突的问题 参考链接: Android Studio(Gradle)解决库依赖冲突问题:http://www.mobibrw.com/2016/3 ...
- 在Android Studio 和 Eclipse 的 git 插件操作 "代码提交"以及"代码冲突"
面向对象:曾经使用过SVN的同学. (因为Git 它 可以说是双重的SVN (本地一个服务器,远程一个服务器)),提交代码要有两次步骤,先提交到本地服务器,再把本地服务器在提交到远程服务器. 所以连S ...
- Android Studio V4 V7 包冲突的问题
最近被包冲突的问题搞奔溃了,特别是V4,V7 V4和V7包冲突的解决方式就是!版本要一致!! 比如我的一个项目中应用本来是这样引用包的 compile 'com.android.support:sup ...
- Android Studio 2.3 instant run与miui冲突问题的解决
Android Studio最近发布的2.3版本,由于这个版本改进后的Instant Run功能和很多国内ROM存在兼容问题,所以导致不得不做一些妥协策略,具体在小米Rom上,就是把小米rom的调试定 ...
- Android Studio快捷键
一.android studio 默认快捷键 刚开始接触一款开发软件,想必很想了解它的快捷方式,这会对你的编程起到很好的帮助,提高工作效率,接下来给你介绍下Android Studio一些常用的快 ...
随机推荐
- [freemarker篇]06.超级强大的自定义指令
Freemarker的自定义指令是很强大的,非常强大,在之后的教程中我会简单的做一个示例,让大家对其有所了解!如果做Freemarker编程,请好好看看API手册,可以说里面的内容很多!也是一门独立的 ...
- [LeetCode] string整体做hash key,窗口思想复杂度O(n)。附来自LeetCode的4例题(标题有字数限制,写不下所有例题题目 T.T)
引言 在字符串类型的题目中,常常在解题的时候涉及到大量的字符串的两两比较,比如要统计某一个字符串出现的次数.如果每次比较都通过挨个字符比较的方式,那么毫无疑问是非常占用时间的,因此在一些情况下,我们可 ...
- maven项目执行run as/maven install时提示找不到包
选中项目,右键 右键项目->MAVEN->Update Project,如下图 点击ok,clean相关项目,再打包.如果还是不行看一下你jdk 的版本和你编译的版本是否一致
- 版本号中Snapshot的含义
Maven中建立的依赖管理方式基本已成为Java语言依赖管理的事实标准,Maven的替代者Gradle也基本沿用了Maven的依赖管理机制.在Maven依赖管理中,唯一标识一个依赖项是由该依赖项的三个 ...
- 基本控件文档-UILabel属性---iOS-Apple苹果官方文档翻译
本系列所有开发文档翻译链接地址:iOS7开发-Apple苹果iPhone开发Xcode官方文档翻译PDF下载地址 //转载请注明出处--本文永久链接:http://www.cnblogs.com/ ...
- 在非ARC工程中使用ARC库
选中工程->TARGETS->相应的target然后选中右侧的“Build Phases”,向下就找到“Compile Sources”了.为对应的库文件添加:-fobjc-arc参数即可 ...
- java 连接MySQL的代码
1.java connect MySQL as conding. https://www.cnblogs.com/centor/p/6142775.html
- MVC4 AspNet MVC下的Ajax / 使用JQuery做相关的Ajax请求
源码参考:链接:http://pan.baidu.com/s/1pKhHHMj 密码:mkr4 1:新建-->项目-->Web-->ASP.NET MVC 4 Web 应用程序.命 ...
- 详解JS中Number()、parseInt()和parseFloat()的区别
三者的作用: Number(): 可以用于任何数据类型转换成数值: parseInt().parseFloat(): 专门用于把字符串转换成数值: 一.Number( ): (1)如果是Boolean ...
- eCharts_数据过多底部滚动条实现数据展示
效果图: 实现原理: 1.添加dataZoom属性 效果实现代码: <!DOCTYPE html> <html> <head> <meta charset=& ...