昨天晚上还在Android Studio写代码,今天起来突然打不开软件了!
注意到报错里面有下面两行信息,然后上网搜索报错信息。
com.intellij.ide.plugins.StartupAbortedException: Cannot start app
Caused by: java.net.BindException: Address already in use: bind
试了网上删除插件方法发现没有用,后来在JetBrains的官方问答里面找到了答案。下面是两个链接。
https://intellij-support.jetbrains.com/hc/en-us/articles/360007568559
https://intellij-support.jetbrains.com/hc/en-us/community/posts/360004973960-Critical-Internal-Error-on-Startup-of-IntelliJ-IDEA-Cannot-Lock-System-Folders-?page=1#community_comment_360001512800
简单来说,就是Windows 10的Hyper-V虚拟机(你可能之前使用过WSL,然后启用了Windows里面的Hyper-V和适用于Linux的Windows子系统)把某些端口保留,但Android Studio需要在端口6942~6991间找到一个可用端口并绑定(bind),然后这个范围正好在Hyper-V的端口保留范围内 ,所以就不让Android Studio使用,于是就报错了。
你可以在cmd使用如下命令查询端口保留情况
netsh interface ipv4 show excludedportrange protocol=tcp
解决
使用如下命令把Windows动态端口分配改到从49152开始。(需要管理员身份)
netsh int ipv4 set dynamicport tcp start=49152 num=16383
netsh int ipv4 set dynamicport udp start=49152 num=16383
当然你也可以选择在Windows里面关闭Hyper-V和适用于Linux的Windows子系统。(如果你不再使用这些的话)
PS:好像JetBrains出的软件使用端口基本都是在6942~6991选一个。所以IDEA,PyCharm等出问题也可以先使用上面的查询端口代码看一下是不是端口冲突。