2014-06-14 4 views
0

Je veux sauver le ArrayList afin que je puisse utiliser pour une autre zone pour cette raison que je suis de retour imageurlJe reçois une exception nullpointer

06-14 00:06:43.660: D/AndroidRuntime(14293): Shutting down VM 
06-14 00:06:43.660: W/dalvikvm(14293): threadid=1: thread exiting with uncaught exception (group=0x40a601f8) 
06-14 00:06:43.664: E/AndroidRuntime(14293): FATAL EXCEPTION: main 
06-14 00:06:43.664: E/AndroidRuntime(14293): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.unccphotos/com.example.unccphotos.MainActivity}: java.lang.NullPointerException 
06-14 00:06:43.664: E/AndroidRuntime(14293): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956) 
06-14 00:06:43.664: E/AndroidRuntime(14293): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 
06-14 00:06:43.664: E/AndroidRuntime(14293): at android.app.ActivityThread.access$600(ActivityThread.java:123) 
06-14 00:06:43.664: E/AndroidRuntime(14293): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) 
06-14 00:06:43.664: E/AndroidRuntime(14293): at android.os.Handler.dispatchMessage(Handler.java:99) 
06-14 00:06:43.664: E/AndroidRuntime(14293): at android.os.Looper.loop(Looper.java:137) 
06-14 00:06:43.664: E/AndroidRuntime(14293): at android.app.ActivityThread.main(ActivityThread.java:4424) 
06-14 00:06:43.664: E/AndroidRuntime(14293): at java.lang.reflect.Method.invokeNative(Native Method) 
06-14 00:06:43.664: E/AndroidRuntime(14293): at java.lang.reflect.Method.invoke(Method.java:511) 
06-14 00:06:43.664: E/AndroidRuntime(14293): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
06-14 00:06:43.664: E/AndroidRuntime(14293): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
06-14 00:06:43.664: E/AndroidRuntime(14293): at dalvik.system.NativeStart.main(Native Method) 
06-14 00:06:43.664: E/AndroidRuntime(14293): Caused by: java.lang.NullPointerException 
06-14 00:06:43.664: E/AndroidRuntime(14293): at com.example.unccphotos.MainActivity.onCreate(MainActivity.java:36) 
06-14 00:06:43.664: E/AndroidRuntime(14293): at android.app.Activity.performCreate(Activity.java:4465) 
06-14 00:06:43.664: E/AndroidRuntime(14293): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 
06-14 00:06:43.664: E/AndroidRuntime(14293): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 
06-14 00:06:43.664: E/AndroidRuntime(14293): ... 11 more 


public class MainActivity extends Activity { 
    ProgressDialog pd; 

    ArrayList<String> imageurl = new ArrayList<String>(); 
    String url = "http://liisp.uncc.edu/~mshehab/api/photos.txt"; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     pd.setProgressStyle(ProgressDialog.STYLE_SPINNER); 
     pd.setCancelable(false); 

     new AsyncImage().execute(url); 
    } 
    private class AsyncImage extends AsyncTask<String, Void, ArrayList<String>> { 


     protected ArrayList<String> doInBackground(String...params) { 


      try { 
       URL url = new URL(MainActivity.this.url); 
       HttpURLConnection con = (HttpURLConnection) url.openConnection(); 
       con.setRequestMethod("GET"); 
       con.connect();   
       int statusCode = con.getResponseCode(); 
       if (statusCode == HttpURLConnection.HTTP_OK) { 
        BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); 
        String result ;  
        while((result = in.readLine()) != null){      
        result=result+"\n"+result; 
        imageurl.add(result); 
        Log.d("result", imageurl.toString()); 

        return imageurl; 

        } 
      }} 
        catch (MalformedURLException e) { 
         e.printStackTrace(); 
        } catch (IOException e) { 
         e.printStackTrace(); 
        }catch(NullPointerException e){ 
         e.printStackTrace(); 
        } catch (Exception e) { 

        } 

        return imageurl; 


     } 
     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      pd= ProgressDialog.show(MainActivity.this, "","Retreiving image URls..."); 
     } 
@Override 
    protected void onPostExecute(ArrayList<String> imageurl) { 

      super.onPostExecute(imageurl); 
      pd.dismiss(); 
     } 

    } 
} 
+0

poster votre logcat – SMR

+0

où vous obtenez l'exception de pointeur nul? – prakash

+0

même je ne sais pas que – user3593487

Répondre

0

Je pense que pointeur nul exaption comming parce que de dialogue de progrès. vous devez définir la propriété de celle-ci avant l'initialisation.

Supprimer sous deux lignes de méthode oncreate

pd.setProgressStyle(ProgressDialog.STYLE_SPINNER); 
pd.setCancelable(false); 

Ajouter ce dans OnPreExecute mehtod de AsyncTask comme ci-dessous

@Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     pd= ProgressDialog.show(MainActivity.this, "","Retreiving image URls..."); 
     pd.setProgressStyle(ProgressDialog.STYLE_SPINNER); 
     pd.setCancelable(false); 
    } 

espoir il fonctionnera.

+0

merci ..il a travaillé – user3593487

0

On dirait que vous essayez d'utiliser votre ProgressDialog pd avant de l'initialiser:

pd.setProgressStyle(ProgressDialog.STYLE_SPINNER); // is this line 36? 

C'est la moindre idée de logcat:

Caused by: java.lang.NullPointerException 06-14 00:06:43.664: E/AndroidRuntime(14293): at com.example.unccphotos.MainActivity.onCreate(MainActivity.java:36) 
+0

merci ... vous avez une idée où conserver ce pd.setProgressStyle (ProgressDialog.STYLE_SPINNER); – user3593487

0
Try to put this code: 
pd.setProgressStyle(ProgressDialog.STYLE_SPINNER); 
pd.setCancelable(false); 

After this line: 
pd= ProgressDialog.show(MainActivity.this, "","Retreiving image URls..."); 

Resulted code: 
@Override 
protected void onPreExecute() { 
    super.onPreExecute(); 
    pd= ProgressDialog.show(MainActivity.this, "","Retreiving image URls..."); 
    pd.setProgressStyle(ProgressDialog.STYLE_SPINNER); 
    pd.setCancelable(false); 
} 
0

OK! Il lance un NullPointerException car vous utilisez pd avant de l'initialiser. Sachez que onCreate() sera appelé avant onPreExecute(). Enlevez ces lignes du onCreate():

setContentView(R.layout.activity_main); 
//pd.setProgressStyle(ProgressDialog.STYLE_SPINNER); <---delete 
//pd.setCancelable(false); <--delete 

et faire les modifications suivantes dans votre l » onPreexecute()AsyncTask:

@Override 
protected void onPreExecute() { 
    super.onPreExecute(); 
    pd= ProgressDialog.show(MainActivity.this, "","Retreiving image URls..."); 
    pd.setProgressStyle(ProgressDialog.STYLE_SPINNER); 
    pd.setCancelable(false); 
    pd.show(); 
} 

Hope this helps :)