web-dev-qa-db-ja.com

NetworkSecurityConfig:ネットワークセキュリティ構成が指定されていません-Android 7.0 error?

Android 7.0.0。

私はアプリケーションにvolleyライブラリを使用していますが、Android 7.0

これが私のコードの一部です。

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);
    }

Android 7.0でアプリケーションをテストすると、コンソールの出力は次のようになります。

D/NetworkSecurityConfig:ネットワークセキュリティ構成が指定されていません。プラットフォームのデフォルトI/Choreographerを使用:127フレームスキップされました!アプリケーションがメインスレッドで多くの作業を行っている可能性があります。

ただし、これはAndroid 7.0でのみ発生し、インターネットからの応答がないため、アプリケーションは空白に見えます

。この問題を解決するにはどうすればよいですか?

8
Onurhan Akcay

このメッセージに問題はありません:

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

D/は、これがデバッグメッセージであることを示します。独自のネットワークセキュリティ構成が定義されていないため、プラットフォームのデフォルトルールが適用されます。これはまったく問題ありません。

インターネットからの応答がないため、アプリケーションが空に見える

私が知る限り、あなたはJSONを解析し、繰り返し処理し、kisilerを生成しています。おそらくkisilerはUIに接続されていません。

10
CommonsWare

したがって、前の答えが十分に明確であったとは思いません。 (私はこれを「デバッグ」しようとして数時間を費やしました)

このプロンプトが表示されている場合、それが言う事実

D/blablabla

これはデバッグであり、notエラーであることを意味します。 NetworkSecurityConfigを指定しなかったこと、およびNetworkSecurityConfigがデフォルトに設定することを自ら決定したことを知らせる通知に似ています。何も間違ってない。

ただし、エラーは次のように表示されます。

E/blebleble

TL; DRエラーをデバッグしようとしている場合、間違った場所を見ている可能性があります。

1
Nicolas Shu