I'm having a problem in my Android app, in one of my fragments I use volley to do a network request:
JsonObjectRequest request = new JsonObjectRequest(
Request.Method.POST,
CustomNetworkManager.getInstance(this.getActivity().getApplicationContext()).getRequestUrl(url),
requestData,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
// process response
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d("FeedFragment", "Volley error: " + error.toString());
}
});
On a real device I get the following error (running API23):
D/FeedFragment: Volley error: com.android.volley.NoConnectionError: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
In an AVD running the same API version it is working fine. I checked other similar threads but couldn't find an answer.
Thanks for your help.
edit: If anyone faces the same error, make sure you don't have any problems with your certificates (http://developer.android.com/intl/pt-br/training/articles/security-ssl.html#CommonProblems)
This solved my problem trying to run my android volley app on arc welder only needs to be run once..at the initial splash activity
Just in case one still uses Volley...
Follow the instructions here:
https://developer.android.com/training/articles/security-ssl#java
Download the certificate file (.crt), put it into your assets directory (next to your java and res directories), then change the following code:
to use the file from assets:
Forget the part after
and add one single line instead:
Run this code before any connections made.
That's all.
try to add this function to your Application:
and then call it in your Application onCreate.
UPDATE: