由于工作需要,我最近不得不开捡起以前的只是开发Android代码。
但是尴尬的是,已经从git同步下来的项目没办法使用studio的git插件。报错是:
14:22 Git Pull failed
Invocation failed Unexpected end of file from server
java.lang.RuntimeException: Invocation failed Unexpected end of file from server
at git4idea.GitAppUtil.sendXmlRequest(GitAppUtil.java:30)
at git4idea.http.GitAskPassApp.main(GitAskPassApp.java:58)
Caused by: java.net.SocketException: Unexpected end of file from server
at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:866)
at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:863)
at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1615)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)
at org.apache.xmlrpc.DefaultXmlRpcTransport.sendXmlRpc(DefaultXmlRpcTransport.java:87)
at org.apache.xmlrpc.XmlRpcClientWorker... (show balloon)
unable to read askpass response from 'C:\Users\xxx\AppData\Local\Google\AndroidStudio2021.2\tmp\intellij-git-askpass-local.sh' bash: /dev/tty: No such device or address failed to execute prompt script (exit code 1) could not read Username for 'http://xxx.xxx.com:8080': No such file or directory
搜到的解决办法:
设置use credential helper。意思是使用凭据助手,但后半句为啥不说呢?还抄来抄去。
后半句是:此外,还需要添加git的window凭证。在控制面板-用户帐号-凭据管理器-windows凭据-普通凭据中添加。
也有另一种解决办法:
也可以从日志分析。could not read Username for 'http://xxx.xxx.com:8080':
新版studio读取账号密码的方式变了。它不再从git配置文件的user节点读取账号密码了,它要从remote节点读。所以remote的url换个格式吧。
新格式是:http://git账号:git密码@xxx.xxx.com:8080:yyy
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)