java.lang.NullPointerException: попытка вызвать виртуальный метод int org.json.JSONObject.getInt (java.lang.String) для пустой ссылки на объект

Я пытаюсь отправьте данные из Android-приложения в Raspberry pi по этой ссылке.
Я выполнил все шаги, упомянутые в нем, но при попытке запустить приложение выдает ошибку в android studio logcat.

ошибка выглядит следующим образом: java.lang.NullPointerException: попытка вызвать виртуальный метод ‘int org.json.JSONObject.getInt (java.lang.String)’ для ссылки на пустой объект.

Строки с ошибкой 102 & 80, который

строка 80: -> int success = json.getInt («success»);

строка 102: -> if (success == 1)

Вот мой код Android Studio. Я получаю сообщение об ошибке в классе MainActivity.java.

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:

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)

0

Решение

попробуй так:

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

Надеюсь, это сработает

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]