最近经常遇到退出AndroidStudio的时候卡死,本身电脑配置不算低,而且打开时候不会卡,正常使用包括Build的时候也不会卡,就只有退出的时候会卡死。百度、google都没找到我这样的情况。。。
那只能自己解决了,先是尝试将gradle部署等放在本地,发现无效。。。修改VM内存大小,使用时速度是会变快一点,但还是没办法解决退出时卡死的问题。没办法,只好看日志了,可以通过Help->Show Log in Explorer 看到AndroidStudio的日志。
我们看下AndroidStudio在退出的时候究竟做了什么事情
2017-11-16 16:17:48,512 [d thread 3] INFO - ateSettings.impl.UpdateChecker - Malformed reply from SOCKS server
java.net.SocketException: Malformed reply from SOCKS server
at java.net.SocksSocketImpl.readSocksReply(SocksSocketImpl.java:129)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:459)
at java.net.Socket.connect(Socket.java:589)
at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)
at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:264)
at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:367)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1181)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1032)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1546)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1474)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:338)
at com.intellij.util.io.HttpRequests.openConnection(HttpRequests.java:511)
at com.intellij.util.io.HttpRequests.access$300(HttpRequests.java:61)
at com.intellij.util.io.HttpRequests$RequestImpl.getConnection(HttpRequests.java:289)
at com.intellij.util.io.HttpRequests$RequestImpl.getInputStream(HttpRequests.java:298)
at com.intellij.util.io.HttpRequests$RequestImpl.getReader(HttpRequests.java:316)
at com.intellij.util.io.HttpRequests$RequestImpl.getReader(HttpRequests.java:309)
at com.intellij.openapi.updateSettings.impl.UpdateChecker$checkPlatformUpdate$1.process(UpdateChecker.kt:182)
at com.intellij.openapi.updateSettings.impl.UpdateChecker$checkPlatformUpdate$1.process(UpdateChecker.kt:68)
at com.intellij.util.io.HttpRequests.lambda$doProcess$0(HttpRequests.java:420)
at com.intellij.util.net.ssl.CertificateManager.runWithUntrustedCertificateStrategy(CertificateManager.java:349)
at com.intellij.util.io.HttpRequests.doProcess(HttpRequests.java:420)
at com.intellij.util.io.HttpRequests.process(HttpRequests.java:395)
at com.intellij.util.io.HttpRequests.access$100(HttpRequests.java:61)
at com.intellij.util.io.HttpRequests$RequestBuilderImpl.connect(HttpRequests.java:263)
at com.intellij.openapi.updateSettings.impl.UpdateChecker.checkPlatformUpdate(UpdateChecker.kt:180)
at com.intellij.openapi.updateSettings.impl.UpdateChecker.doUpdateAndShowResult(UpdateChecker.kt:125)
at com.intellij.openapi.updateSettings.impl.UpdateChecker.access$doUpdateAndShowResult(UpdateChecker.kt:68)
at com.intellij.openapi.updateSettings.impl.UpdateChecker$updateAndShowResult$1.run(UpdateChecker.kt:94)
at com.intellij.openapi.application.impl.ApplicationImpl$2.run(ApplicationImpl.java:334)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
原来是因为socks代理的原因,之前因为墙的原因设了本地socks代理,但是18+1大之后墙升级了,之前购买的vps不能用了。。。然后AndroidStudio退出的时候回去请求数据,socks代理返回的数据有问题,就阻塞到这里不动了。。。MDZZ
在File>Settings>Appearance&&Behavior>System Settings>HTTP Proxy中将代理更改为No Proxy,就可以正常退出了。
所以。。。。遇到bug要先看日志啊,可以省很多时间。。。。