JSONParser错误,找不到类。 Android版 [英] JSONParser error, class not found. Android

查看:568
本文介绍了JSONParser错误,找不到类。 Android版的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从Twitter的饲料在我的Andr​​oid应用程序。我使用了一些样本code,为了做到这一点,现在我不能让应用程序启动。这里是code:

I am trying to get feed from Twitter in my Android app. I used some sample code in order to do that, and now I can't get the app started. Here is the code:

import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.JSONValue;
import org.json.simple.parser.JSONParser;

    import android.app.Activity;
    import android.content.Context;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.net.Uri;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ArrayAdapter;
    import android.widget.ImageView;
    import android.widget.ListView;
    import android.widget.TextView;

    public class Twitter extends Activity {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.twitter_layout);

            ArrayList<Tweet> tweets = getTweets("android", 1);

            ListView listView = (ListView) findViewById(R.id.ListViewId);
            listView.setAdapter(new UserItemAdapter(this, R.layout.listitem, tweets));
        }

        public class UserItemAdapter extends ArrayAdapter<Tweet> {
            private ArrayList<Tweet> tweets;

            public UserItemAdapter(Context context, int textViewResourceId, ArrayList<Tweet> tweets) {
                super(context, textViewResourceId, tweets);
                this.tweets = tweets;
            }

            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                View v = convertView;
                if (v == null) {
                    LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                    v = vi.inflate(R.layout.listitem, null);
                }

                Tweet tweet = tweets.get(position);
                if (tweet != null) {
                    TextView username = (TextView) v.findViewById(R.id.username);
                    TextView message = (TextView) v.findViewById(R.id.message);
                    ImageView image = (ImageView) v.findViewById(R.id.avatar);

                    if (username != null) {
                        username.setText(tweet.username);
                    }

                    if(message != null) {
                        message.setText(tweet.message);
                    }

                    if(image != null) {
                        image.setImageBitmap(getBitmap(tweet.image_url));
                    }
                }
                return v;
            }
        }

        public Bitmap getBitmap(String bitmapUrl) {
            try {
                URL url = new URL(bitmapUrl);
                return BitmapFactory.decodeStream(url.openConnection() .getInputStream()); 
            }
            catch(Exception ex) {return null;}
        }

        public ArrayList<Tweet> getTweets(String searchTerm, int page) {
            String searchUrl = "http://search.twitter.com/search.json?q=@" 
                                + searchTerm + "&rpp=100&page=" + page;

            ArrayList<Tweet> tweets = new ArrayList<Tweet>();

            HttpClient client = new  DefaultHttpClient();
            HttpGet get = new HttpGet(searchUrl);

            ResponseHandler<String> responseHandler = new BasicResponseHandler();

            String responseBody = null;
            try{
                responseBody = client.execute(get, responseHandler);
            }catch(Exception ex) {
                ex.printStackTrace();
            }

            JSONObject jsonObject = null;

            /*  */
            JSONParser pars=new JSONParser();

            /*  */

            try {
                Object obj = pars.parse(responseBody);
                jsonObject=(JSONObject)obj;

            }catch(Exception ex){
                Log.v("TEST","Exception: " + ex.getMessage());
            }

            JSONArray arr = null;

            try {
                Object j = jsonObject.get("results");
                arr = (JSONArray)j;
            }catch(Exception ex){
                Log.v("TEST","Exception: " + ex.getMessage());
            }

            for(Object t : arr) {
                Tweet tweet = new Tweet(
                        ((JSONObject)t).get("from_user").toString(),
                        ((JSONObject)t).get("text").toString(),
                        ((JSONObject)t).get("profile_image_url").toString()
                        );
                tweets.add(tweet);
            }

            return tweets;
        }

        public class Tweet {
            public String username;
            public String message;
            public String image_url;

            public Tweet(String username, String message, String url) {
                this.username = username;
                this.message = message;
                this.image_url = url;
            }
        }
    }

这是我的LogCat中:

And here is my LogCat:

05-23 11:34:16.443: E/AndroidRuntime(25616): FATAL EXCEPTION: main
05-23 11:34:16.443: E/AndroidRuntime(25616): java.lang.NoClassDefFoundError: org.json.simple.parser.JSONParser
05-23 11:34:16.443: E/AndroidRuntime(25616):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-23 11:34:16.443: E/AndroidRuntime(25616):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
05-23 11:34:16.443: E/AndroidRuntime(25616):    at android.app.ActivityThread.startActivityNow(ActivityThread.java:2503)
05-23 11:34:16.443: E/AndroidRuntime(25616):    at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127)
05-23 11:34:16.443: E/AndroidRuntime(25616):    at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339)
05-23 11:34:16.443: E/AndroidRuntime(25616):    at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:673)
05-23 11:34:16.443: E/AndroidRuntime(25616):    at android.widget.TabHost.setCurrentTab(TabHost.java:345)
05-23 11:34:16.443: E/AndroidRuntime(25616):    at android.widget.TabHost$2.onTabSelectionChanged(TabHost.java:138)
05-23 11:34:16.443: E/AndroidRuntime(25616):    at android.widget.TabWidget$TabClickListener.onClick(TabWidget.java:453)
05-23 11:34:16.443: E/AndroidRuntime(25616):    at android.view.View.performClick(View.java:2408)
05-23 11:34:16.443: E/AndroidRuntime(25616):    at android.view.View$PerformClick.run(View.java:8816)
05-23 11:34:16.443: E/AndroidRuntime(25616):    at android.os.Handler.handleCallback(Handler.java:587)
05-23 11:34:16.443: E/AndroidRuntime(25616):    at android.os.Handler.dispatchMessage(Handler.java:92)
05-23 11:34:16.443: E/AndroidRuntime(25616):    at android.os.Looper.loop(Looper.java:123)
05-23 11:34:16.443: E/AndroidRuntime(25616):    at android.app.ActivityThread.main(ActivityThread.java:4627)
05-23 11:34:16.443: E/AndroidRuntime(25616):    at java.lang.reflect.Method.invokeNative(Native Method)
05-23 11:34:16.443: E/AndroidRuntime(25616):    at java.lang.reflect.Method.invoke(Method.java:521)
05-23 11:34:16.443: E/AndroidRuntime(25616):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878)
05-23 11:34:16.443: E/AndroidRuntime(25616):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636)
05-23 11:34:16.443: E/AndroidRuntime(25616):    at dalvik.system.NativeStart.main(Native Method)

我使用 HTTP://$c$c.google.com/ p / JSON-简单/

推荐答案

您需要有在利布斯JSON的简单的罐子项目的目录中。你可能目前有它设置,使罐子可用于建筑,但不包括在内置应用程序。

You need to have the json-simple jar in the Lib or Libs directory of your project. You probably currently have it set up so the jar is available for building, but isn't included in the built app.

这篇关于JSONParser错误,找不到类。 Android版的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆