2017-04-26 6 views
0

私は自分のアプリケーションをAndroid上でクラッシュを持っているが、私はこのエラーメッセージ(ログ)を持っているログに、Androidのスタジオで開発:ここクラッシュ

04-26 16:58:12.393 31024-31024/com.example.nicol.etablissement43 D/AbsListView: checkAbsListViewlLogProperty get invalid command 
04-26 16:58:12.394 31024-31024/com.example.nicol.etablissement43 D/AndroidRuntime: Shutting down VM 
04-26 16:58:12.395 31024-31024/com.example.nicol.etablissement43 E/AndroidRuntime: FATAL EXCEPTION: main 
                        Process: com.example.nicol.etablissement43, PID: 31024 
                        java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.nicol.etablissement43/com.example.nicol.etablissement43.recherche_2}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference 
                         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2521) 
                         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2595) 
                         at android.app.ActivityThread.access$800(ActivityThread.java:178) 
                         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1470) 
                         at android.os.Handler.dispatchMessage(Handler.java:111) 
                         at android.os.Looper.loop(Looper.java:194) 
                         at android.app.ActivityThread.main(ActivityThread.java:5631) 
                         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:959) 
                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754) 
                        Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference 
                         at com.example.nicol.etablissement43.recherche_2.onCreate(recherche_2.java:74) 
                         at android.app.Activity.performCreate(Activity.java:6092) 
                         at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1112) 
                         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2468) 
                         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2595)  
                         at android.app.ActivityThread.access$800(ActivityThread.java:178)  
                         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1470)  
                         at android.os.Handler.dispatchMessage(Handler.java:111)  
                         at android.os.Looper.loop(Looper.java:194)  
                         at android.app.ActivityThread.main(ActivityThread.java:5631)  
                         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:959)  
                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)  

は私のクラスです。

ここ
package com.example.nicol.etablissement43; 

import android.app.ProgressDialog; 
import android.content.Intent; 
import android.net.Uri; 
import android.os.AsyncTask; 
import android.os.Build; 
import android.os.Bundle; 
import android.os.StrictMode; 
import android.support.v7.app.AppCompatActivity; 
import android.util.Log; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.TextView; 
import android.widget.Toast; 

import org.apache.http.HttpResponse; 
import org.apache.http.NameValuePair; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.entity.UrlEncodedFormEntity; 
import org.apache.http.client.methods.HttpPost; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.apache.http.message.BasicNameValuePair; 
import org.apache.http.params.HttpConnectionParams; 
import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 

import java.io.BufferedReader; 
import java.io.BufferedWriter; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.io.OutputStream; 
import java.io.OutputStreamWriter; 
import java.net.HttpURLConnection; 
import java.net.MalformedURLException; 
import java.net.URI; 
import java.net.URL; 
import java.util.ArrayList; 
import java.util.List; 

/** 
* Created by nicol on 25/04/2017. 
*/ 

public class recherche_2 extends AppCompatActivity { 
    private static final String LOG_TAG = "Selection Ville"; 
    private ListView Ville; 
    private ArrayAdapter<String> listAdapter ; 
    private AdapterClient adapterClient ; 
    private TextView SQLData; 

    @Override/* 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.recherche_2); 
    }*/ 

    protected void onCreate(Bundle savedInstanceState) { 
     { 

      if (Build.VERSION.SDK_INT > 8) { 
       StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); 
       StrictMode.setThreadPolicy(policy); 
      } 

      super.onCreate(savedInstanceState); 
      String page = this.getPage("http://appec43.890m.com/connectionbddandroid/config.inc.php"); 

      Log.i("ContenuPost", page); 
      setContentView(R.layout.recherche_2); 
      Ville = (ListView) findViewById(R.id.Ville); 
      SQLData.setText("Les villes"); 
      SQLData.setText("Les villes"); 
      //String[] planets = new String[] {""}; 


      // ArrayList<String> planetList = new ArrayList<String>(); 
      // planetList.addAll(Arrays.asList(planets)); 

      //listAdapter = new ArrayAdapter<String>(this, R.layout.simplerow, planetList); 
      adapterClient = new AdapterClient(this, R.layout.recherche_2); 
      try { 
       JSONArray jsonArray = new JSONArray(page); 

       for (int i = 0; i < jsonArray.length(); i++) { 

        JSONObject jsonObject = jsonArray.getJSONObject(i); 
        client clientobj = new client(); 
        clientobj.setIdVille(jsonObject.getString("Ville")); 
        clientobj.setCodepostal(jsonObject.getString("codepostal")); 

        adapterClient.add(clientobj); 
       } 

      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 


     /* 
     String[] split = page.split(","); 
     for (int i = 0; i < split.length; i++) { 
      listAdapter.add(split[i]); 
      if (i != split.length - 1) { 
       listAdapter.add(" "); 
      } 
     } 
     */ 


      Ville.setAdapter(adapterClient); 

     } 
    } 

    public String getPage(String adresse){ 

     StringBuffer stringBuffer = new StringBuffer(""); 
     BufferedReader bufferedReader = null; 

     try { 
      HttpClient httpClient = new DefaultHttpClient(); 
      HttpConnectionParams.setConnectionTimeout(httpClient.getParams(), 15000); 

      HttpPost httpPost = new HttpPost(); 

      URI uri = new URI(adresse); 

      httpPost.setURI(uri); 
      List<NameValuePair> parametres = new ArrayList<NameValuePair>(); 
      parametres.add(new BasicNameValuePair("login", "u265740438_root2")); 
      parametres.add(new BasicNameValuePair("pass", "nicolas")); 
      UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(parametres); 
      httpPost.setEntity(formEntity); 
      HttpResponse httpResponse = httpClient.execute(httpPost); 
      InputStream inputStream = httpResponse.getEntity().getContent(); 
      bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); 

      String ligneLue = bufferedReader.readLine(); 

      while (ligneLue != null) { 
       Log.i("Valeur", ligneLue); 
       stringBuffer.append(ligneLue); 
       stringBuffer.append("\n"); 
       ligneLue = bufferedReader.readLine(); 

      } 
     } 
     catch(Exception e) { 
      Log.e("Erreur", e.getMessage()); 
     } 
     finally{ 
      if(bufferedReader != null){ 
       try{ 
        bufferedReader.close(); 
       } 
       catch (IOException e){ 

       } 
      } 

     } 

     return stringBuffer.toString(); 

    } 


    } 

は私のレイアウトです:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent"> 


     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

    <TextView 
     android:text="Villes" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/SQLData" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_marginLeft="52dp" 
     android:layout_marginStart="52dp" /> 

    <ListView 
     android:id="@+id/Ville" 
     style="@style/Widget.AppCompat.Light.ListView.DropDown" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_below="@+id/textView" 
     android:layout_marginTop="24dp" /> 

私は答え を探していますので、それがしばらくしているので、誰かがあなたがSQLDataのTextViewを初期化する必要があり、事前に

+0

こんにちは、こんにちは、こんにちは、ここでは英語を使用しています。 – Jiahao

答えて

0

をありがとうソリューションを持っているでしょう。この

SQLData = (TextView)findViewById(R.id.SQLData)onCreate内部の方法と同様に

+0

ありがとうございますが、冒頭に置かなければなりませんか? – Nicolas

+0

アプリケーションがクラッシュしないが、JSONデータは表示されない – Nicolas