Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:NullPointerException尝试在异步任务中将tweet对象添加到我的模型时_Android_Arraylist_Android Asynctask_Nullpointerexception - Fatal编程技术网

Android:NullPointerException尝试在异步任务中将tweet对象添加到我的模型时

Android:NullPointerException尝试在异步任务中将tweet对象添加到我的模型时,android,arraylist,android-asynctask,nullpointerexception,Android,Arraylist,Android Asynctask,Nullpointerexception,当我尝试将我的tweet对象添加到模型中的ArrayList时,我遇到了这个问题,但是我得到了一个NullPointerException。这发生在我的SearchTweetsTask类中。 只有当我使用twitterapi搜索tweets时才会发生这种情况。获得时间表和资料非常有效,一点问题都没有。但只有当我搜索推特时,我才得到这个例外。 我通过我在MainActivity中创建的actionbar中的searchview搜索推文。 我希望你能帮助我 下面是一些代码: protecte

当我尝试将我的tweet对象添加到模型中的ArrayList时,我遇到了这个问题,但是我得到了一个NullPointerException。这发生在我的SearchTweetsTask类中。 只有当我使用twitterapi搜索tweets时才会发生这种情况。获得时间表和资料非常有效,一点问题都没有。但只有当我搜索推特时,我才得到这个例外。 我通过我在MainActivity中创建的actionbar中的searchview搜索推文。 我希望你能帮助我

下面是一些代码:

    protected String doInBackground(String... params)
    {
        meldingen = "";
        String result = "";
        String searchString = params[0];
        String decoded = "";
        try {
            decoded = URLEncoder.encode(searchString, "UTF-8");
        } catch (UnsupportedEncodingException e1) {
            Log.d("URL ENCODER", "De Search query is niet goed ingelezen");
        }
        String url = "https://api.twitter.com/1.1/search/tweets.json?q=";
        String searchURL = url + decoded + "&count=50";

        try{
            HttpGet get = new HttpGet(searchURL);
            Authenticate.authentication(get);
            ResponseHandler<String> handler = new BasicResponseHandler();
            result = httpClient.execute(get, handler);
            JSONObject json = new JSONObject(result);
            JSONArray jArray = json.getJSONArray("statuses");
            for (int i = 0; i < jArray.length(); i++)
            {
                JSONObject subObject = jArray.getJSONObject(i);
                Tweet tweet = new Tweet (subObject);
                publishProgress(tweet);
            }
        }
        catch(HttpResponseException e)
        {
           //all the catch exceptions
           ....
        }
    //GETTING NULLER POINTER HERE
    protected void onProgressUpdate(Tweet... tweets) {
        for (Tweet tweet : tweets) {
            model.addSearchTweets(tweet);
        }
    }
Logcat


在实例化JsonObject之前,是否检查了得到的结果? Add Log.dResult字符串为,result; 在doInBackground中发出http请求后,将答案发布在此处。
我打赌结果为空,您正试图创建一个带有空字符串的tweet对象。

看起来model可能为空。它在哪里声明和初始化?我确信我的模型不是空的,因为其他任务工作得很好,只有在这个任务中我得到了异常。这是一个单例模型;
   private ArrayList<Tweet> searchTweets = new ArrayList<Tweet>();

   public void addSearchTweets(Tweet tweet)
   {
       searchTweets.add(tweet);
   }
   public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.actions, menu);
    MenuItem searchItem = menu.findItem(R.id.action_search);
    final SearchView searchView = (SearchView) searchItem.getActionView();

    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    if(null != searchManager ) 
    {   
        searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
        searchView.setOnQueryTextListener(new OnQueryTextListener() {

            @Override
            public boolean onQueryTextSubmit(String search) {
                model.clearSearchTweets();

                InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(searchView.getWindowToken(), 0);

                Fragment newFragment = new UserSearchTweetsFragment();
                FragmentTransaction transaction = getFragmentManager().beginTransaction();
                transaction.replace(R.id.frame_container, newFragment);
                transaction.addToBackStack(null);

                SearchTweetsTask searchTweets = new SearchTweetsTask(MainActivity.this);
                searchTweets.execute(search);

                transaction.commit();
                return true;
            }

            @Override
            public boolean onQueryTextChange(String search) {
                return true;
            }
        });
    }
    searchView.setIconifiedByDefault(false);
    return true;
07-14 17:18:25.048: E/AndroidRuntime(9135): FATAL EXCEPTION: main
07-14 17:18:25.048: E/AndroidRuntime(9135): Process: nl.timkatgert.tweettweet, PID: 9135
07-14 17:18:25.048: E/AndroidRuntime(9135): java.lang.NullPointerException
07-14 17:18:25.048: E/AndroidRuntime(9135):     at nl.timkatgert.tweettweet.tasks.SearchTweetsTask.onProgressUpdate(SearchTweetsTask.java:117)
07-14 17:18:25.048: E/AndroidRuntime(9135):     at nl.timkatgert.tweettweet.tasks.SearchTweetsTask.onProgressUpdate(SearchTweetsTask.java:1)
07-14 17:18:25.048: E/AndroidRuntime(9135):     at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:648)
07-14 17:18:25.048: E/AndroidRuntime(9135):     at android.os.Handler.dispatchMessage(Handler.java:102)
07-14 17:18:25.048: E/AndroidRuntime(9135):     at android.os.Looper.loop(Looper.java:157)
07-14 17:18:25.048: E/AndroidRuntime(9135):     at android.app.ActivityThread.main(ActivityThread.java:5356)
07-14 17:18:25.048: E/AndroidRuntime(9135):     at java.lang.reflect.Method.invokeNative(Native Method)
07-14 17:18:25.048: E/AndroidRuntime(9135):     at java.lang.reflect.Method.invoke(Method.java:515)
07-14 17:18:25.048: E/AndroidRuntime(9135):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
07-14 17:18:25.048: E/AndroidRuntime(9135):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
07-14 17:18:25.048: E/AndroidRuntime(9135):     at dalvik.system.NativeStart.main(Native Method)