Tentative d'invoquer la méthode virtuelle 'boolean java.util.Liste de tableaux.isEmpty () sur un objet nul de référence

Je suis l'envoi de 2 types de demandes vers le serveur une fois si la route est connue, les données seront transmises et insérées dans la table. De l'autre, si la route est inconnu puis le serveur sera demandé de fournir l'application android de la route tant qu'il y a des données disponibles pour calculer l'itinéraire, sinon la route est de 0.

dans onPostExecute je vérifie si le 'routeList' n'est pas vide et pas null si j'obtiens cette erreur:

Erreur:

05-25 20:33:29.107: E/AndroidRuntime(1946): FATAL EXCEPTION: main
05-25 20:33:29.107: E/AndroidRuntime(1946): Process: com.bustracker, PID: 1946
05-25 20:33:29.107: E/AndroidRuntime(1946): java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.Iterator java.util.ArrayList.iterator()' on a null object reference
05-25 20:33:29.107: E/AndroidRuntime(1946):     at com.bustracker.PostData$MyAsyncTask.onPostExecute(PostData.java:131)
05-25 20:33:29.107: E/AndroidRuntime(1946):     at com.bustracker.PostData$MyAsyncTask.onPostExecute(PostData.java:1)
05-25 20:33:29.107: E/AndroidRuntime(1946):     at android.os.AsyncTask.finish(AsyncTask.java:632)
05-25 20:33:29.107: E/AndroidRuntime(1946):     at android.os.AsyncTask.access$600(AsyncTask.java:177)
05-25 20:33:29.107: E/AndroidRuntime(1946):     at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
05-25 20:33:29.107: E/AndroidRuntime(1946):     at android.os.Handler.dispatchMessage(Handler.java:102)
05-25 20:33:29.107: E/AndroidRuntime(1946):     at android.os.Looper.loop(Looper.java:145)
05-25 20:33:29.107: E/AndroidRuntime(1946):     at android.app.ActivityThread.main(ActivityThread.java:5944)
05-25 20:33:29.107: E/AndroidRuntime(1946):     at java.lang.reflect.Method.invoke(Native Method)
05-25 20:33:29.107: E/AndroidRuntime(1946):     at java.lang.reflect.Method.invoke(Method.java:372)
05-25 20:33:29.107: E/AndroidRuntime(1946):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1389)
05-25 20:33:29.107: E/AndroidRuntime(1946):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1184)

onPostExecute():

ArrayList<Integer> routes = new ArrayList<Integer>();
@Override
protected void onPostExecute(Void result) {
for (int item: routes){
System.out.println("The output from the onPostExecute:  "+item);
}
//Intent with Conetxt of the Asyntask class and
if (!routes.isEmpty() && (routes != null)) {
//if(routes !=null ){
Intent intent = new Intent(mContext, MainActivity.class);
intent.putIntegerArrayListExtra("stop_route", routes);
intent.putExtra("stop_distance", distance);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
mContext.startActivity(intent);
} else {
Log.e("123", "Avoiding null pointer, the routes are null!!!");
}
}

onNewIntent():

@Override
protected void onNewIntent(Intent intent) {
//TODO Auto-generated method stub
super.onNewIntent(intent);
//getIntent() should always return the most recent
setIntent(intent);
Bundle extras = getIntent().getExtras();
if (extras != null && extras.containsKey("stop_route")) {
double distance = extras.getDouble("stop_distance");
System.out.println("The distance is: "+ distance);
if (distance <= 15) {
stop_popup(extras);
} else {
final ArrayList<Integer> routeList = extras
.getIntegerArrayList("stop_route");
route_number = routeList.get(0);
System.out.println("The route number is: " + route_number);
}
} else {
System.out.println("The intent is empty: ");
}
}
  • Il y a 2 références à onPostExecute dans votre trace de la pile: en PostData' classe sur la ligne 1 et un en "PostData' à nouveau, mais sur la ligne 132. Sont que vous cherchez à la droite "PostData' méthode à suivre l'erreur?
  • Après la suppression de la Boucle de for (int item: routes) il fonctionne maintenant
InformationsquelleAutor benz | 2015-05-25