2017-04-18 4 views
0

Ich versuche send data from Android app to Raspberry pi from this link. Ich habe alle Schritte ausgeführt, die darin erwähnt werden, aber wenn ich versuche, die Anwendung auszuführen, gibt es mir einen Fehler in Android Studio Logcat.java.lang.NullPointerException: Versuch, die virtuelle Methode 'int org.json.JSONObject.getInt (java.lang.String)' für eine Nullobjekt-Referenz aufzurufen

Der Fehler ist wie folgt: java.lang.NullPointerException: Es wurde versucht, die virtuelle Methode 'int org.json.JSONObject.getInt (java.lang.String)' für einen Nullobjektverweis aufzurufen.

Die Linien sind mit Fehler 102 & 80, die

Zeile ist 80: -> int success = json.getInt ("Erfolg");

Linie 102: -> if (Erfolg == 1)

Hier ist mein Android Studio-Code. Ich erhalte Fehler in MainActivity.java Klasse .:

MainActivity.java

public class MainActivity extends ActionBarActivity { 

private ProgressDialog pDialog; 

JSONParser jsonParser = new JSONParser(); 

EditText editText; 

@Override 
protected void onDestroy() { 
    try { 
     if (pDialog != null && pDialog.isShowing()) { 
      pDialog.dismiss(); 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    super.onDestroy(); 
} 

EditText editText2; 
String String_name; 
String Int_Part; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    editText = (EditText) findViewById(R.id.Name); 
    editText2 = (EditText) findViewById(R.id.part_nr); 
    String_name = editText.getText().toString(); 
    Int_Part = editText2.getText().toString(); 
} 


public void Send(View view) { 
    new Create_Part().execute(); 
} 

class Create_Part extends AsyncTask<String, String, String> { 
    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     pDialog = new ProgressDialog(MainActivity.this); 
     pDialog.setMessage("Sending part to the database..."); 
     pDialog.setIndeterminate(false); 
     pDialog.setCancelable(true); 
     pDialog.show(); 
    } 

    @Override 
    protected String doInBackground(String... args) { 


     List<NameValuePair> params = new ArrayList<>(); 
     params.add(new BasicNameValuePair("Name", String_name)); 
     params.add(new BasicNameValuePair("part_nr", Int_Part)); 

     JSONObject json = jsonParser.makeHttpRequest("192.168.0.190/db_create.php.php", "POST", params); 

     try { 
      int success = json.getInt("success"); 

      if(success == 1){ 
       finish(); 
      } 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 

     return null; 
    } 

    protected void onPostExecute(String file_url){ 
     pDialog.dismiss(); 
    } 
} 
} 

Logcat Fehler:

04-18 16:26:11.493 2818-3010/com.example.androidphp2 E/AndroidRuntime: FATAL 
EXCEPTION: AsyncTask #4 
     Process: com.example.androidphp2, PID: 2818 
     java.lang.RuntimeException: An error occurred while executing doInBackground()             
     at android.os.AsyncTask$3.done(AsyncTask.java:309) 
     at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354) 
     at java.util.concurrent.FutureTask.setException(FutureTask.java:223) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:242) 
     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
     at java.lang.Thread.run(Thread.java:818) 
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int org.json.JSONObject.getInt(java.lang.String)' on a null object reference 
     at com.example.androidphp2.MainActivity$Create_Part.doInBackground(MainActivity.java:102) 
     at com.example.androidphp2.MainActivity$Create_Part.doInBackground(MainActivity.java:80) 
     at android.os.AsyncTask$2.call(AsyncTask.java:295) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)  
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)  
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)  
     at java.lang.Thread.run(Thread.java:818)  
+3

Problem hier 'int success = json.getInt ("Erfolg");' –

+1

Sieht aus wie 'jsonParser.makeHttpRequest ("192.168.0.190/db_create.php.php", "POST", params);' return null – Jens

+0

Sie erhalten keine Antwort oder vielleicht keine Antwort, deshalb ist Ihr 'json' null und Sie versuchen es zu benutzen. Setzen Sie vor der Verwendung von 'json.getIntent()' auch einen Null-Check. –

Antwort

0

versuchen wie folgt aus:

int success = Integer.parseInt(json.getString("success")); 

Ich hoffe, es wird funktionieren

+0

Angewandt dies. immer noch der gleiche Fehler .. :( –

+0

Ich bekomme keine Antwort oder vielleicht Null Antwort, das ist, warum mein JSON null ist und ich versuche, es zu verwenden. Dies kann der mögliche Grund sein. Ich muss PHP-Datei überprüfen Antwort –

+0

ya weiter und überprüfen Sie die Antwort –

Verwandte Themen