问题描述
我正在做一个项目,试图从微调器的数据中进行数据库搜索,但即使我的 php 脚本正在运行,它仍然给我 nullPointer 异常。我已经看过 JSONArray 了,它准确地显示了它应该做什么,所以我真的不明白 Android 在哪里或为什么给我空指针异常。 P.S“数据”是葡萄牙语的日期,在我的数据库中,类型是时间戳,但即使去掉那部分也不起作用。 请帮帮我
PHP 脚本
<?php
include "conn.php";
$nome_prova = $_GET["nome"];
$id_prova = "";
$tempos = array();
//$nome_prova = "50 Freestyle";
$athleteQuery = mysqli_query($conn,"SELECT `id` FROM `prova` WHERE `nome` LIKE '$nome_prova'");
$row1 = mysqli_fetch_array($athleteQuery);
$id_prova = $row1['id'];
$selectTimes = mysqli_query($conn,"SELECT A.nome,A.genero,T.tempo,T.data FROM atleta A,tempos T WHERE T.Prova_id = '$id_prova' AND A.id = T.Atleta_id;");*/
while($row = mysqli_fetch_assoc($selectTimes)){
array_push($tempos,$row);
}
echo json_encode ($tempos);
?>
安卓脚本
package com.example.time2swim;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.koushikdutta.async.future.FutureCallback;
import com.koushikdutta.ion.Ion;
import com.rengwuxian.materialedittext.MaterialEditText;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class VerTempos extends AppCompatActivity {
Spinner eventspinner;
Button search;
ListView listView;
List<Time> lista;
List<String> listaevent = new ArrayList<String>();
String HOST = "http://192.168.1.220/Time2Swim";
Adapter timeAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ver_tempos);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
lista = new ArrayList<Time>();
eventspinner = findViewById(R.id.event);
listView = findViewById(R.id.listViewTimes);
listaEvents();
search = findViewById(R.id.search);
search.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String eventText = String.valueOf(eventspinner.getSelectedItem());
String url = HOST + "/Mostrar_Tempos.php?nome=" + eventText;
Ion.with(getBaseContext())
.load(url)
.asJsonArray()
.setCallback(new FutureCallback<JsonArray>() {
@Override
public void onCompleted(Exception e,JsonArray result) {
for (int i = 0; i < result.size(); i++) {
JsonObject obj = result.get(i).getAsJsonObject();
Time t = new Time();
t.setNome_atleta(obj.get("nome").getAsString());
t.setGenero_atleta(obj.get("telefone").getAsString());
t.setData(obj.get("data").getAsString());
t.setTempo(obj.get("tempo").getAsString());
lista.add(t);
}
listView = findViewById(R.id.listViewAthletes);
timeAdapter = new TimeAdapter(VerTempos.this,lista);
listView.setAdapter((ListAdapter) timeAdapter);
}
});
}
});
}
控制台
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.time2swim,PID: 15141
java.lang.NullPointerException: Attempt to invoke virtual method 'int com.google.gson.JsonArray.size()' on a null object reference
at com.example.time2swim.VerTempos$1$1.onCompleted(VerTempos.java:107)
at com.example.time2swim.VerTempos$1$1.onCompleted(VerTempos.java:104)
at com.koushikdutta.async.future.SimpleFuture.handleCallbackUnlocked(SimpleFuture.java:107)
at com.koushikdutta.async.future.SimpleFuture.setComplete(SimpleFuture.java:141)
at com.koushikdutta.async.future.SimpleFuture.setComplete(SimpleFuture.java:124)
at com.koushikdutta.ion.IonRequestBuilder$1.run(IonRequestBuilder.java:244)
at com.koushikdutta.async.AsyncServer$RunnableWrapper.run(AsyncServer.java:60)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)