我正试图从这个链接将数据从Android应用程序发送到Raspberry pi。我已经执行了其中提到的所有步骤,但当我尝试运行该应用程序时,在android studio logcat中会出现一个错误。
错误类似于:java.lang.NullPointerExcture:尝试在空对象引用上调用虚拟方法'intorg.json.JSONObject.getInt(java.lang.String)'。
有错误的行是102
第80行:--
第102行:--
这是我的Android Studio代码。我在主活动中出错。java类:
美娜ctivity.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)
试着这样做:
int success = Integer.parseInt(json.getString("success"));
希望它能起作用
我已经到处搜索并尝试了他们关于如何调用虚拟方法的方法,但结果仍然是一样的。请帮助我,我不知道我的错误在哪里。 当我在手机上运行我的应用程序时,它会引发以下异常: 尝试对空对象引用调用虚拟方法“Java . lang . string my package . studentin information . get userid()” 方法showData() 班级学生信息() Firebase数据
我正在尝试实现一个外部色轮,它应该出现在的片段一直在崩溃我的应用程序。我想我明白为什么会发生这种情况,但是在尝试修复它大约6个小时后,我就要放弃了。我知道之前有人问过这个问题,但是我无法为我的特定问题导出一个修复程序。下面是我的代码: 这是Logcat错误: 如果有人能帮我解决这个问题,那就太好了。提前谢谢^^ 编辑:这是我的XML,按要求:
我的应用程序有问题,我想解决它,但我无法访问解决方案,请帮助我,,,
问题内容: 我收到以下错误 尝试在空对象引用上调用虚拟方法’void android.widget.StackView.setAdapter(android.widget.Adapter)’ 在这条线上 完整的片段 EventsFragment.java 是 Stack_Adapter.java Stack_Items 问题答案: 您正在执行: 你是。返回。 你为什么用? 在哪里?您应该从正确的x
我的应用程序有问题,想解决它,但我无法访问解决方案,请帮帮我,,
我将使用库,并尝试在应用程序启动时使用以下方法获取令牌。 应用程序在发布时崩溃 AndroidManifest Build.Gradle: 此外,我尝试在SharedPreferences中缓存令牌,但似乎从未调用onNewToken()。 会有什么问题?