在我的Android應用程序中,我必須將文件上傳到Google Drive。直到昨天,我已經有0上傳問題。它已經工作了一年多了。突然之間,現在我得到了很多失敗的上傳。大多數情況下,我會收到「Read Timed Out」,但偶爾我會得到java.io.eofexception。一些上傳只是延遲,對於一個小文件而言可能是20秒,而不是正常的2秒,但大部分都會失敗。上傳一個接一個地發生,每10個上傳中就有1個或2個出現這個問題。閱讀超時上傳到Google Drive
我嘗試使用最新的1.15.0-rc庫,也使用一些較舊的庫以及最新的google-api-services-drive-v2-rev82-1.14.2-beta.jar庫。似乎沒有任何幫助。
Google雲端硬盤有問題嗎?我檢查了狀態頁面,並沒有顯示任何問題。
我還創建了一個新的測試項目,它刪除了我所有的代碼,我使用新代碼從mediastore上傳一行10個文件作爲測試,並且這個應用程序也有同樣的問題。
編輯:我測試了3個不同的網絡,他們都產生了相同的行爲。
這裏是例外的一個例子:
06-28 06:09:12.942: W/HttpTransport(5758): exception thrown while executing request
06-28 06:09:12.942: W/HttpTransport(5758): java.net.SocketTimeoutException: Read timed out
06-28 06:09:12.942: W/HttpTransport(5758): at org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_read(Native Method)
06-28 06:09:12.942: W/HttpTransport(5758): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl$SSLInputStream.read(OpenSSLSocketImpl.java:664)
06-28 06:09:12.942: W/HttpTransport(5758): at libcore.io.Streams.readSingleByte(Streams.java:41)
06-28 06:09:12.942: W/HttpTransport(5758): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl$SSLInputStream.read(OpenSSLSocketImpl.java:648)
06-28 06:09:12.942: W/HttpTransport(5758): at libcore.io.Streams.readAsciiLine(Streams.java:201)
06-28 06:09:12.942: W/HttpTransport(5758): at libcore.net.http.HttpEngine.readResponseHeaders(HttpEngine.java:573)
06-28 06:09:12.942: W/HttpTransport(5758): at libcore.net.http.HttpEngine.readResponse(HttpEngine.java:821)
06-28 06:09:12.942: W/HttpTransport(5758): at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:283)
06-28 06:09:12.942: W/HttpTransport(5758): at libcore.net.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:495)
06-28 06:09:12.942: W/HttpTransport(5758): at libcore.net.http.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:134)
06-28 06:09:12.942: W/HttpTransport(5758): at com.google.api.client.http.javanet.NetHttpResponse.<init>(NetHttpResponse.java:37)
06-28 06:09:12.942: W/HttpTransport(5758): at com.google.api.client.http.javanet.NetHttpRequest.execute(NetHttpRequest.java:95)
06-28 06:09:12.942: W/HttpTransport(5758): at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:980)
06-28 06:09:12.942: W/HttpTransport(5758): at com.google.api.client.googleapis.media.MediaHttpUploader.executeCurrentRequest(MediaHttpUploader.java:456)
06-28 06:09:12.942: W/HttpTransport(5758): at com.google.api.client.googleapis.media.MediaHttpUploader.upload(MediaHttpUploader.java:362)
06-28 06:09:12.942: W/HttpTransport(5758): at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:420)
06-28 06:09:12.942: W/HttpTransport(5758): at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:345)
06-28 06:09:12.942: W/HttpTransport(5758): at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:463)
當網絡無法連接到網址,然後一段時間後,它會拋出超時錯誤 – PankajAndroid
你必須捕捉該異常並返回一些值 – PankajAndroid
網絡是好的。我測試了wifi,4g,還有我的朋友在他的網絡上測試過同樣的問題。我確實發現了這個例外,我把它貼上了消息。這是堆棧跟蹤。 – Nek