Can not connect to server via FTP - android

I am getting the following error :
java.net.ConnectException: failed to connect to /139.59.67.108 (port 21): connect failed: ECONNREFUSED (Connection refused)
Caused by: android.system.ErrnoException: connect failed: ECONNREFUSED (Connection refused)
at libcore.io.Posix.connect(Native Method)
Here is my code
try
{
FTPClient con = null;
con = new FTPClient();
con.connect("139.59.67.108");
Log.v("checkLogin", "succeeded");
if (con.login("xxxx", "xxxx"))
{
con.enterLocalPassiveMode(); // important!
con.setFileType(FTP.BINARY_FILE_TYPE);
///data/data/com.prd.inspirationslate/databases
String data = "/data/data/com.prd.inspirationslate/databases"; //path on device
FileInputStream in = new FileInputStream(new File(data));
Log.v("upload result check", "succeeded");
boolean result = con.storeFile("/vivekm4a.m4a", in);
in.close();
if (result) Log.v("upload result", "succeeded");
con.logout();
con.disconnect();
}
}
catch (Exception e)
{
e.printStackTrace();
}
trying to upload file via ftp on server . On filezilla I can easily connect
Log trace
java.net.ConnectException: failed to connect to /139.59.67.108 (port 21): connect failed: ECONNREFUSED (Connection refused)
W/System.err: at libcore.io.IoBridge.connect(IoBridge.java:124)
W/System.err: at
java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
W/System.err: at
java.net.PlainSocketImpl.connect(PlainSocketImpl.java:163)
W/System.err: at java.net.Socket.startupSocket(Socket.java:592)
W/System.err: at java.net.Socket.tryAllAddresses(Socket.java:128)
W/System.err: at java.net.Socket.(Socket.java:178)
W/System.err: at java.net.Socket.(Socket.java:150)
W/System.err: at
org.apache.commons.net.DefaultSocketFactory.createSocket(DefaultSocketFactory.java:53)
W/System.err: at
org.apache.commons.net.SocketClient.connect(SocketClient.java:162)
W/System.err: at
org.apache.commons.net.SocketClient.connect(SocketClient.java:250)
W/System.err: at
com.prd.inspirationslate.LoginActivity$2$1.run(LoginActivity.java:120)
W/System.err: at java.lang.Thread.run(Thread.java:818)
W/System.err: Caused by: android.system.ErrnoException: connect
failed: ECONNREFUSED (Connection refused) W/System.err: at
libcore.io.Posix.connect(Native Method) W/System.err: at
libcore.io.BlockGuardOs.connect(BlockGuardOs.java:111) W/System.err:
at libcore.io.IoBridge.connectErrno(IoBridge.java:137) W/System.err:
at libcore.io.IoBridge.connect(IoBridge.java:122) W/System.err: ...
11 more

Related

Android Connection refused on proxy using OkHttp3

I'm getting Connection refused error when I'm using a proxy configuration in Android Studio and send a request to server.
Does anyone have a light about this?
This is my Client builder:
SSLContext sslContext = SSLContext.getInstance("SSL");
TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
trustManagerFactory.init(keyStore);
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
keyManagerFactory.init(keyStore, keyStorePass.toCharArray());
sslContext.init(keyManagerFactory.getKeyManagers(), trustManagerFactory.getTrustManagers(), new SecureRandom());
client = new OkHttpClient.Builder().sslSocketFactory(sslContext.getSocketFactory())
.hostnameVerifier(new HostnameVerifier() {
#Override
public boolean verify(String s, SSLSession sslSession) {
return true;
}
}).connectTimeout(timeout, TimeUnit.MILLISECONDS)
.readTimeout(timeout, TimeUnit.MILLISECONDS)
.writeTimeout(timeout, TimeUnit.MILLISECONDS).build();
This is the Error log:
W/System.err: java.net.ConnectException: Failed to connect to /10.51.33.41:443
at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.java:222)
W/System.err: at okhttp3.internal.connection.RealConnection.connect(RealConnection.java:146)
at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:186)
at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:121)
at okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:100)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
W/System.err: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
W/System.err: at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:120)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:179)
at okhttp3.RealCall.execute(RealCall.java:63)
W/System.err: at br.com.oi.http.HttpClient.doRequest(HttpClient.java:192)
at br.com.oi.http.HttpClient.doRequest(HttpClient.java:86)
at br.com.oi.dadosfacil.service.oi.login.LoginService.run(LoginService.java:64)
at br.com.oi.http.BaseService.onHandleIntent(BaseService.java:38)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:76)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
W/System.err: at android.os.HandlerThread.run(HandlerThread.java:65)
Caused by: java.net.ConnectException: failed to connect to /10.51.33.41 (port 443) from /192.163.222.2 (port 49536) after 120000ms: isConnected failed: ECONNREFUSED (Connection refused)
W/System.err: at libcore.io.IoBridge.isConnected(IoBridge.java:273)
at libcore.io.IoBridge.connectErrno(IoBridge.java:188)
at libcore.io.IoBridge.connect(IoBridge.java:130)
at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:129)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:356)
W/System.err: at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:357)
W/System.err: at java.net.Socket.connect(Socket.java:616)
at okhttp3.internal.platform.AndroidPlatform.connectSocket(AndroidPlatform.java:63)
at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.java:220)
... 25 more
W/System.err: Caused by: android.system.ErrnoException: isConnected failed: ECONNREFUSED (Connection refused)
at libcore.io.IoBridge.isConnected(IoBridge.java:262)
W/System.err: ... 35 more
I'm using minSdkVersion 19 and targetSdkVersion 26

Can't Connect to Local Mosquitto Broker From Real Android Device

I created a MQTT broker using Mosquitto library (version - 1.6.12). and created Android mobile app, which acts as paho clients(Libraries Used - 'libs/org.eclipse.paho.client.mqttv3-1.2.0.jar', 'libs/org.eclipse.paho.android.service-1.1.1.jar')
Trying to connect android app to the local Mosquitto broker. I'm able to connect through Android emulator Getting Socket issue When I try with real android device.
Android Code:
MqttAndroidClient client;
String clientId = MqttClient.generateClientId();
//Since broker is running in the same system I gave my local IP-ADDRESS - 192.168.0.100
//Port - 1883
client = new MqttAndroidClient(this.getApplicationContext(), "tcp://192.168.0.100:1883", clientId);
try {
MqttConnectOptions options = new MqttConnectOptions();
options.setKeepAliveInterval(60);
Log.d(TAG, "MqttConnectOptions : "+options.toString());
IMqttToken token = client.connect(options);
token.setActionCallback(new IMqttActionListener() {
#Override
public void onSuccess(IMqttToken asyncActionToken) {
Log.d(TAG, "onSuccess");
}
#Override
public void onFailure(IMqttToken asyncActionToken, Throwable exception) {
Log.d(TAG, "onFailure ");
exception.printStackTrace();
}
});
} catch (MqttException e) {
e.printStackTrace();
}
Android Studio Logs:
2020-10-06 20:27:31.775 23972-23972/com.exam.mqttwithlibs W/System.err: MqttException (0) - java.net.SocketTimeoutException: failed to connect to /192.168.0.100 (port 1883) from /192.168.0.102 (port 37459) after 30000ms
2020-10-06 20:27:31.778 23972-23972/com.exam.mqttwithlibs W/System.err: at org.eclipse.paho.client.mqttv3.internal.ExceptionHelper.createMqttException(ExceptionHelper.java:38)
2020-10-06 20:27:31.779 23972-23972/com.exam.mqttwithlibs W/System.err: at org.eclipse.paho.client.mqttv3.internal.ClientComms$ConnectBG.run(ClientComms.java:715)
2020-10-06 20:27:31.779 23972-23972/com.exam.mqttwithlibs W/System.err: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:458)
2020-10-06 20:27:31.779 23972-23972/com.exam.mqttwithlibs W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:266)
2020-10-06 20:27:31.780 23972-23972/com.exam.mqttwithlibs W/System.err: at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
2020-10-06 20:27:31.780 23972-23972/com.exam.mqttwithlibs W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
2020-10-06 20:27:31.780 23972-23972/com.exam.mqttwithlibs W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
2020-10-06 20:27:31.781 23972-23972/com.exam.mqttwithlibs W/System.err: at java.lang.Thread.run(Thread.java:764)
2020-10-06 20:27:31.785 23972-23972/com.exam.mqttwithlibs W/System.err: Caused by: java.net.SocketTimeoutException: failed to connect to /192.168.0.100 (port 1883) from /192.168.0.102 (port 37459) after 30000ms
2020-10-06 20:27:31.786 23972-23972/com.exam.mqttwithlibs W/System.err: at libcore.io.IoBridge.connectErrno(IoBridge.java:185)
2020-10-06 20:27:31.786 23972-23972/com.exam.mqttwithlibs W/System.err: at libcore.io.IoBridge.connect(IoBridge.java:129)
2020-10-06 20:27:31.786 23972-23972/com.exam.mqttwithlibs W/System.err: at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:137)
2020-10-06 20:27:31.786 23972-23972/com.exam.mqttwithlibs W/System.err: at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390)
2020-10-06 20:27:31.787 23972-23972/com.exam.mqttwithlibs W/System.err: at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230)
2020-10-06 20:27:31.787 23972-23972/com.exam.mqttwithlibs W/System.err: at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212)
2020-10-06 20:27:31.787 23972-23972/com.exam.mqttwithlibs W/System.err: at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:436)
2020-10-06 20:27:31.788 23972-23972/com.exam.mqttwithlibs W/System.err: at java.net.Socket.connect(Socket.java:621)
2020-10-06 20:27:31.788 23972-23972/com.exam.mqttwithlibs W/System.err: at org.eclipse.paho.client.mqttv3.internal.TCPNetworkModule.start(TCPNetworkModule.java:84)
2020-10-06 20:27:31.788 23972-23972/com.exam.mqttwithlibs W/System.err: at org.eclipse.paho.client.mqttv3.internal.ClientComms$ConnectBG.run(ClientComms.java:701)
2020-10-06 20:27:31.788 23972-23972/com.exam.mqttwithlibs W/System.err: ... 6 more
In above image 192.168.0.100 - System's IP and 192.168.0.102 - Android device IP
Thanks for any help.
Open Port 1883 by following this link https://bytesofgigabytes.com/networking/how-to-open-port-in-windows/ solves this issue
If you use Mosquitto as a server on MacOS, you need edit the config file at /opt/homebrew/etc/mosquitto/mosquitto.conf
listener 1883 -- Specify port number
allow_anonymous true
Then restart Mosquitto

Http response code 500/ FileNotFoundException

when I try to get the input stream from an URL, I get the following Error:
W/System.err: java.io.FileNotFoundException: https://...
W/System.err: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:250)
W/System.err: at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:210)
W/System.err: at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java)
W/System.err: at com.andrei.mobilissimoro.MainActivity$FeedTask.doInBackground(MainActivity.java:406)
W/System.err: at com.andrei.mobilissimoro.MainActivity$FeedTask.doInBackground(MainActivity.java:371)
W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:305)
W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
W/System.err: at java.lang.Thread.run(Thread.java:761)
And the response code is 500.
Here is the code:
HttpURLConnection httpURLConnection;
try {
httpURLConnection = (HttpURLConnection)new URL(feed).openConnection();
httpURLConnection.setRequestMethod("GET");
Integer status = httpURLConnection.getResponseCode();
System.out.println(status.toString());
InputStream inputStream = httpURLConnection.getInputStream();
feedModelList = parseFeed(inputStream);
}
catch (Exception e){
e.printStackTrace();
}
Server will send 500 code, when there is some exception while executing code on server while responding to your API call.

return layout.getLineForOffset(selectionStart); crashing my app

return layout.getLineForOffset(selectionStart);
this line is causing my app to crash.
I am using it to get current cursor line in multi-line edit text. Like this.
public int getCurrentCursorLine(EditText editText) {
int selectionStart = Selection.getSelectionStart(editText.getText());
Layout layout = editText.getLayout();
if (!(selectionStart == -1) && editText.hasFocus()) {
return layout.getLineForOffset(selectionStart);
}
return -1;
}
This is error log
10-18 21:07:28.711 24433-24433/com.example.tabstrial2 E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.tabstrial2, PID: 24433
java.lang.NullPointerException: Attempt to invoke virtual method 'int android.text.Layout.getLineForOffset(int)' on a null object reference
at com.example.tabstrial2.TabFragment1.getCurrentCursorLine(TabFragment1.java:451)
at com.example.tabstrial2.TabFragment1$2.onTextChanged(TabFragment1.java:169)
at android.widget.TextView.sendOnTextChanged(TextView.java:7689)
at android.widget.TextView.setText(TextView.java:4070)
at android.widget.TextView.setText(TextView.java:3925)
at android.widget.EditText.setText(EditText.java:85)
at android.widget.TextView.setText(TextView.java:3900)
at android.widget.TextView.onRestoreInstanceState(TextView.java:3800)
at android.view.View.dispatchRestoreInstanceState(View.java:13754)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2894)
at android.view.View.restoreHierarchyState(View.java:13732)
at android.support.v4.app.Fragment.restoreViewState(Fragment.java:477)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1135)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1290)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:801)
at android.support.v4.app.FragmentManagerImpl.execSingleAction(FragmentManager.java:1638)
at android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:679)
at android.support.v4.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:166)
at android.support.v4.view.ViewPager.populate(ViewPager.java:1240)
at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:670)
at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:632)
at android.support.v4.view.ViewPager.setCurrentItem(ViewPager.java:613)
at com.example.tabstrial2.MainActivity.onNavigationItemSelected(MainActivity.java:569)
at android.support.design.widget.NavigationView$1.onMenuItemSelected(NavigationView.java:153)
at android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:810)
at android.support.v7.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:152)
at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:957)
at android.support.design.internal.NavigationMenuPresenter$1.onClick(NavigationMenuPresenter.java:328)
at android.view.View.performClick(View.java:4783)
at android.view.View$PerformClick.run(View.java:19887)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5290)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:911)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:706)
Also I have received this error few times which I think might be related to same issue related to edittext view.
10-18 21:05:58.691 10607-24276/? E/AppsFlyer_3.0-804958145: failed to connect to t.appsflyer.com/127.0.0.1 (port 80) after 10000ms: isConnected failed: ECONNREFUSED (Connection refused)
java.net.ConnectException: failed to connect to t.appsflyer.com/127.0.0.1 (port 80) after 10000ms: isConnected failed: ECONNREFUSED (Connection refused)
at libcore.io.IoBridge.isConnected(IoBridge.java:238)
at libcore.io.IoBridge.connectErrno(IoBridge.java:171)
at libcore.io.IoBridge.connect(IoBridge.java:122)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:456)
at java.net.Socket.connect(Socket.java:882)
at com.android.okhttp.internal.Platform.connectSocket(Platform.java:174)
at com.android.okhttp.Connection.connect(Connection.java:152)
at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:276)
at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:211)
at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:382)
at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:106)
at com.android.okhttp.internal.http.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:217)
at com.appsflyer.AppsFlyerLib.a(SourceFile:1378)
at com.appsflyer.AppsFlyerLib.b(SourceFile:1348)
at com.appsflyer.AppsFlyerLib.a(SourceFile:32)
at com.appsflyer.AppsFlyerLib$SendToServerRunnable.run(SourceFile:1534)
at com.appsflyer.AppsFlyerLib.c(SourceFile:973)
at com.appsflyer.AppsFlyerLib.a(SourceFile:32)
at com.appsflyer.AppsFlyerLib$DataCollector.run(SourceFile:1479)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Caused by: android.system.ErrnoException: isConnected failed: ECONNREFUSED (Connection refused)
at libcore.io.IoBridge.isConnected(IoBridge.java:223)
at libcore.io.IoBridge.connectErrno(IoBridge.java:171) 
at libcore.io.IoBridge.connect(IoBridge.java:122) 
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183) 
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:456) 
at java.net.Socket.connect(Socket.java:882) 
at com.android.okhttp.internal.Platform.connectSocket(Platform.java:174) 
at com.android.okhttp.Connection.connect(Connection.java:152) 
at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:276) 
at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:211) 
at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:382) 
at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:106) 
at com.android.okhttp.internal.http.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:217) 
at com.appsflyer.AppsFlyerLib.a(SourceFile:1378) 
at com.appsflyer.AppsFlyerLib.b(SourceFile:1348) 
at com.appsflyer.AppsFlyerLib.a(SourceFile:32) 
at com.appsflyer.AppsFlyerLib$SendToServerRunnable.run(SourceFile:1534) 
at com.appsflyer.AppsFlyerLib.c(SourceFile:973) 
at com.appsflyer.AppsFlyerLib.a(SourceFile:32) 
at com.appsflyer.AppsFlyerLib$DataCollector.run(SourceFile:1479) 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422) 
at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152) 
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
at java.lang.Thread.run(Thread.java:818) 
Also Important info: my app has tabLayout with 5 tabs, each holding separate fragment. When I open the app for the first time and when fragment holding this code is loaded for first time, there is no crash or error, the app crashes when I swipe through tabs and when I return to that tab second time. I am using FragmentStatePagerAdapter if that has anything relevance here.
I faced the same issue, for my case it seems that the layout of the TextView or in your case EditText wasn't completely created by android system, so getLayout() returns null.
I solved that by putting some delay with a Handler
And calling the above method in onResume()
#Override
protected void onResume() {
super.onResume();
new Handler().postDelayed(new Runnable() {
#Override
public void run() {
getCurrentCursorLine(myEditText);
}
}, 300); // 300 msec delay
}

Retrofit 2.0 multipart file uploading sendto failed: ETIMEDOUT (Connection timed out) error

I increased the timeout of okhttp client to 5 minutes:
OkHttpClient client = new OkHttpClient();
client.setConnectTimeout(5, TimeUnit.MINUTES);
client.setReadTimeout(5, TimeUnit.MINUTES);
client.setWriteTimeout(5, TimeUnit.MINUTES);
client.interceptors().add(new Interceptor() {
#Override
public Response intercept(Chain chain) throws IOException {
Request original = chain.request();
// Customize the request
Request request = original.newBuilder()
//.header("Accept", "application/json")
.header("Authorization", Constants.SERVICE_AUTH_KEY)
.method(original.method(), original.body())
.build();
// Customize or return the response
return chain.proceed(request);
}
});
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Constants.SERVICE_URL)
.client(client)
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.build();
I use WCF Webservice, i also increased the timeout time to same thing.
Everything works perfectly fine, but uploading file or image to the server.
Even after increasing timeout on both Android and WCF, I still get the error on android:
java.net.SocketException: sendto failed: ETIMEDOUT (Connection timed
out)
This is the full log
W/System.err: java.net.SocketException: sendto failed: ETIMEDOUT (Connection timed out)
W/System.err: at libcore.io.IoBridge.maybeThrowAfterSendto(IoBridge.java:550)
W/System.err: at libcore.io.IoBridge.sendto(IoBridge.java:519)
W/System.err: at java.net.PlainSocketImpl.write(PlainSocketImpl.java:511)
W/System.err: at java.net.PlainSocketImpl.access$100(PlainSocketImpl.java:46)
W/System.err: at java.net.PlainSocketImpl$PlainSocketOutputStream.write(PlainSocketImpl.java:269)
W/System.err: at okio.Okio$1.write(Okio.java:80)
W/System.err: at okio.AsyncTimeout$1.write(AsyncTimeout.java:155)
W/System.err: at okio.RealBufferedSink.emitCompleteSegments(RealBufferedSink.java:176)
W/System.err: at okio.RealBufferedSink.write(RealBufferedSink.java:46)
W/System.err: at com.squareup.okhttp.internal.http.HttpConnection$FixedLengthSink.write(HttpConnection.java:302)
W/System.err: at okio.RealBufferedSink.emitCompleteSegments(RealBufferedSink.java:176)
W/System.err: at okio.RealBufferedSink.writeAll(RealBufferedSink.java:104)
W/System.err: at com.squareup.okhttp.RequestBody$3.writeTo(RequestBody.java:118)
W/System.err: at com.squareup.okhttp.MultipartBuilder$MultipartRequestBody.writeOrCountBytes(MultipartBuilder.java:277)
W/System.err: at com.squareup.okhttp.MultipartBuilder$MultipartRequestBody.writeTo(MultipartBuilder.java:297)
W/System.err: at com.squareup.okhttp.internal.http.HttpEngine$NetworkInterceptorChain.proceed(HttpEngine.java:887)
W/System.err: at com.squareup.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:749)
W/System.err: at com.squareup.okhttp.Call.getResponse(Call.java:268)
W/System.err: at com.squareup.okhttp.Call$ApplicationInterceptorChain.proceed(Call.java:224)
W/System.err: at com.mbh.mbhportal.network.NewPortalService$1.intercept(NewPortalService.java:59)
W/System.err: at com.squareup.okhttp.Call$ApplicationInterceptorChain.proceed(Call.java:221)
W/System.err: at com.squareup.okhttp.Call.getResponseWithInterceptorChain(Call.java:195)
W/System.err: at com.squareup.okhttp.Call.execute(Call.java:79)
W/System.err: at retrofit.OkHttpCall.execute(OkHttpCall.java:116)
W/System.err: at retrofit.RxJavaCallAdapterFactory$CallOnSubscribe.call(RxJavaCallAdapterFactory.java:111)
W/System.err: at retrofit.RxJavaCallAdapterFactory$CallOnSubscribe.call(RxJavaCallAdapterFactory.java:88)
W/System.err: at rx.Observable$2.call(Observable.java:162)
W/System.err: at rx.Observable$2.call(Observable.java:154)
W/System.err: at rx.Observable$2.call(Observable.java:162)
W/System.err: at rx.Observable$2.call(Observable.java:154)
W/System.err: at rx.Observable$2.call(Observable.java:162)
W/System.err: at rx.Observable$2.call(Observable.java:154)
W/System.err: at rx.Observable.unsafeSubscribe(Observable.java:8098)
W/System.err: at rx.internal.operators.OperatorSubscribeOn$1$1.call(OperatorSubscribeOn.java:62)
W/System.err: at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
W/System.err: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390)
W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:234)
W/System.err: at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:153)
W/System.err: at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:267)
W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
W/System.err: at java.lang.Thread.run(Thread.java:838)
W/System.err: Caused by: libcore.io.ErrnoException: sendto failed: ETIMEDOUT (Connection timed out)
W/System.err: at libcore.io.Posix.sendtoBytes(Native Method)
W/System.err: at libcore.io.Posix.sendto(Posix.java:151)
W/System.err: at libcore.io.BlockGuardOs.sendto(BlockGuardOs.java:177)
W/System.err: at libcore.io.IoBridge.sendto(IoBridge.java:517)
W/System.err: ... 40 more
What timeout is this ETIMEDOUT !?

Categories

Resources