2016-04-07 11 views
0

Ich versuche, die YouTube Data API zu verwenden. Sie haben einen Java-Client erstellt. Here is the sample, dass ich versucht habe, eine Anfrage an ihre Server zu senden. Ich kann das nichtAsyncTask doInBackground() gibt Null zurück

// Call the API and print results. 
SearchListResponse searchResponse = search.execute(); 
List<SearchResult> searchResultList = searchResponse.getItems(); 

im Hauptthread haben, weil Android Vernetzung auf dem Hauptthread nicht erlaubt. Also habe ich versucht, die AsyncTask

public class youtubeSearchTask extends AsyncTask<YouTube.Search.List, Void, SearchListResponse> { 

    @Override 
    protected SearchListResponse doInBackground(YouTube.Search.List... params) { 
     SearchListResponse a; 
     try { 
      a = params[0].execute(); 
     } catch (java.io.IOException ioe) { 
      ioe.printStackTrace(); 
     } 
     return a; 
    } 

    @Override 
    protected void onPostExecute(SearchListResponse searchResponse) { 
     List<SearchResult> searchResultList = searchResponse.getItems(); 
     List<String> videoIds = new ArrayList<String>(); 

     if (searchResultList != null) { 

      // Merge video IDs 
      for (SearchResult searchResult : searchResultList) { 
       videoIds.add(searchResult.getId().getVideoId()); 
      } 
      Joiner stringJoiner = Joiner.on(','); 
      String videoId = stringJoiner.join(videoIds); 

      // Call the YouTube Data API's youtube.videos.list method to 
      // retrieve the resources that represent the specified videos. 
      try { 
       YouTube.Videos.List listVideosRequest = youtube.videos().list("snippet, statistics").setId(videoId); 
       new videoSearchTask().execute(listVideosRequest); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 

} 

zu verwenden habe ich versucht,

return params[0].execute(); 

aus dem doInBackground Methode, aber es hat mich für eine mögliche IOException berücksichtigen. Also habe ich den Code geändert und sage jetzt variable 'a' might not have been initialized. Was mache ich?

Antwort

0

Vielleicht, wenn Sie Ihre Variable initialisieren ein zumindest mit einem Null- SearchListResponse a = null; es wird die a not initialized

entfernen