web-dev-qa-db-fra.com

NetworkSecurityConfig: Aucune configuration de sécurité réseau spécifiée - Android 7.0?

J'ai un problème pour Android 7.0.0.

J'utilise la bibliothèque de volley pour mon application, et cela fonctionne bien sauf pour Android 7.0

Voici une partie de mon code;

String url_goster = "http://185.126.217.71/clog.php";
RequestQueue requestQueue;

StringRequest request= new StringRequest(Request.Method.POST, url_goster, new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
        JSONObject veri_json;
        try {
            veri_json = new JSONObject(response);
            JSONArray serial_no = veri_json.getJSONArray("Bilgiler");

            for (int i = 0; i< serial_no.length(); i++){
                JSONObject bilgis = serial_no.getJSONObject(i);

                // JSON olarak verileri çekiyoruz
                String GELEN_SERIAL = bilgis.getString("GELEN_SERIAL");
                String TERMINAL_ADI = bilgis.getString("TERMINAL_ADI");
                String SICAKLIK_T1 = bilgis.getString("SICAKLIK_T1");
                String SICAKLIK_T2 = bilgis.getString("SICAKLIK_T2");
                String SICAKLIK_T3 = bilgis.getString("SICAKLIK_T3");
                String SON_DATA = bilgis.getString("SON_DATA");
                String NEM_H1 = bilgis.getString("NEM_H1");
                String NEM_H2 = bilgis.getString("NEM_H2");
                String NEM_H3 = bilgis.getString("NEM_H3");
                String SENSOR_1_AD = bilgis.getString("SENSOR_1_AD");
                String SENSOR_2_AD = bilgis.getString("SENSOR_2_AD");
                String SENSOR_3_AD = bilgis.getString("SENSOR_3_AD");
                int SENSOR_SAYISI = bilgis.getInt("SENSOR_SAYISI");

                kisiler.add(new Kisi(TERMINAL_ADI, SON_DATA, SENSOR_1_AD, SENSOR_2_AD, SENSOR_3_AD, SICAKLIK_T1, SICAKLIK_T2, SICAKLIK_T3, NEM_H1, NEM_H2, NEM_H3, GELEN_SERIAL, SENSOR_SAYISI));
            }
        } catch (JSONException e) {
            Log.e("JSON ALIRKEN HATA",e.getLocalizedMessage());

            Toast.makeText(getApplicationContext(), "Server'a bağlanılırken bir hata ile karşılaşıldı.", Toast.LENGTH_SHORT).show();
        }
    }
    }, new Response.ErrorListener() {
           @Override
           public void onErrorResponse(VolleyError error) {

           }
       }){
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String,String> params = new HashMap<String,String>();
                params.put("ad",USER);
                return params;
            }
        };
        requestQueue.add(request);
    }

Si je teste mon application sur Android 7.0, la sortie de la console est;

D/NetworkSecurityConfig: Aucune configuration de sécurité réseau spécifiée, en utilisant la plate-forme par défaut I/Chorégraphe: 127 images ignorées! L'application fait peut-être trop de travail sur son thread principal.

mais cela ne se produit que Android 7.0 et l'application semble vide car elle ne reçoit pas de réponse d'Internet

. Comment puis-je résoudre ce problème ?

8
Onurhan Akcay

Il n'y a aucun problème avec ce message:

D/NetworkSecurityConfig: No Network Security Config specified, using platform default 

Le D/ indique qu'il s'agit d'un message de débogage. Il indique que vous n'avez pas défini votre propre configuration de sécurité réseau et que les règles par défaut de la plate-forme s'appliquent. C'est parfaitement bien.

l'application semble vide car elle ne répond pas d'Internet

Autant que je sache, vous analysez du JSON, itérez dessus et remplissez kisiler. Peut-être que kisiler n'est pas connecté à votre interface utilisateur.

10
CommonsWare

Donc, je ne pense pas que la réponse précédente était suffisamment claire. (J'ai passé quelques heures à essayer de "déboguer" cela)

Si vous voyez cette invite, le fait qu'elle indique

D/blablabla

signifie que c'est un débogage, et pas une erreur. Cela ressemble plus à une notification pour vous faire savoir que vous n'avez pas spécifié NetworkSecurityConfig et qu'il a décidé par lui-même de le définir par défaut. Rien de mal.

Votre erreur, cependant, se présentera comme:

E/blebleble

TL; DR Vous cherchez peut-être au mauvais endroit si vous essayez de déboguer une erreur.

1
Nicolas Shu