程序集成Google MLKit API后会向firebaselogging.googleapis.com发送日志数据,但由于该域名在国内无法访问,导致连接超时错误。错误显示系统尝试连接142.250.204.42:443端口失败,30秒后抛出SocketTimeoutException。
https://firebaselogging.googleapis.com/v0cc/log/batch?format=json_proto3
由于国内无法访问google服务,将会出现以下错误提示.
错误信息
Making request to: https://firebaselogging.googleapis.com/v0cc/log/batch?format=json_proto3
17:50:14.081 Transport...tBackend com.ctaias.chatwise E Couldn't encode request, returning with 400
java.net.SocketTimeoutException: failed to connect to firebaselogging.googleapis.com/142.250.204.42 (port 443) from /100.6.20.57 (port 38250) after 30000ms
at libcore.io.IoBridge.connectErrno(IoBridge.java:235)
at libcore.io.IoBridge.connect(IoBridge.java:179)
at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:142)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:436)
at java.net.Socket.connect(Socket.java:646)
at com.android.okhttp.internal.Platform.connectSocket(Platform.java:182)
at com.android.okhttp.internal.io.RealConnection.connectSocket(RealConnection.java:145)
at com.android.okhttp.internal.io.RealConnection.connect(RealConnection.java:116)
at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:186)
at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:128)
at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:97)
at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:289)
at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:232)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:465)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:131)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:262)
at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getOutputStream(DelegatingHttpsURLConnection.java:219)
at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:30)
at com.google.android.datatransport.cct.CctTransportBackend.doSend(CctTransportBackend.java:304)
at com.google.android.datatransport.cct.CctTransportBackend.access$lambda$0(Unknown Source:0)
at com.google.android.datatransport.cct.CctTransportBackend$$Lambda$1.apply(Unknown Source:4)
at com.google.android.datatransport.runtime.retries.Retries.retry(Retries.java:54)
at com.google.android.datatransport.cct.CctTransportBackend.send(CctTransportBackend.java:373)
at com.google.android.datatransport.runtime.scheduling.jobscheduling.Uploader.logAndUpdateState(Uploader.java:121)
at com.google.android.datatransport.runtime.scheduling.jobscheduling.Uploader.lambda$upload$1(Uploader.java:88)
at com.google.android.datatransport.runtime.scheduling.jobscheduling.Uploader$$Lambda$1.run(Unknown Source:8)
at com.google.android.datatransport.runtime.SafeLoggingExecutor$SafeLoggingRunnable.run(SafeLoggingExecutor.java:47)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
at java.lang.Thread.run(Thread.java:1019)
关闭方法
在Android studio中打开你项目的 AndroidManifest.xml文件
在 AndroidManifest 文件中编辑器底部,打开 “Merged Manifest” 的底部选项卡.
在 Merged Manifest 文件中,查找以下依赖项 -
<service
android:name="com.google.android.datatransport.runtime.scheduling.jobscheduling.JobInfoSchedulerService"
android:exported="false"
android:permission="android.permission.BIND_JOB_SERVICE" >
</service>
双击它,会打开相关的依赖项 Manifest 文件, 在文件中注释掉这个服务.
下一步,清理并重新编译项目.经测试不在出现.