获得'';不幸的是,RSS应用程序已停止'';,显示的logcat'';致命异常:Asnyc任务2''; 07-05 23:41:57.638:E/AndroidRuntime(23992):致命异常:AsyncTask#2 07-05 23:41:57.638:E/AndroidRuntime(23992):java.lang.RuntimeException:执行doInBackground()时出错 07-05 23:41:57.638:E/AndroidRuntime(23992):在android.os.AsyncTask$3.done(AsyncTask.java:299) 07-05 23:41:57.638:E/AndroidRuntime(23992):位于java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273) 07-05 23:41:57.638:E/AndroidRuntime(23992):位于java.util.concurrent.FutureTask.setException(FutureTask.java:124) 07-05 23:41:57.638:E/AndroidRuntime(23992):在java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307) 07-05 23:41:57.638:E/AndroidRuntime(23992):在java.util.concurrent.FutureTask.run(FutureTask.java:137) 07-05 23:41:57.638:E/AndroidRuntime(23992):在android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 07-05 23:41:57.638:E/AndroidRuntime(23992):位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 07-05 23:41:57.638:E/AndroidRuntime(23992):位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 07-05 23:41:57.638:E/AndroidRuntime(23992):在java.lang.Thread.run(Thread.java:856)处 07-05 23:41:57.638:E/AndroidRuntime(23992):原因:java.lang.NoClassDefFoundError:org.jsoup.jsoup 07-05 23:41:57.638:E/AndroidRuntime(23992):位于com.android.rssreaderapplication.RSSParser.getRSSLinkFromURL(RSSParser.java:157) 07-05 23:41:57.638:E/AndroidRuntime(23992):位于com.android.rssreaderapplication.RSSParser.getRSSFeed(RSSParser.java:57) 07-05 23:41:57.638:E/AndroidRuntime(23992):在com.android.rssreaderapplication.AddNewSiteActivity$loadRSSFeed.doInBackground(AddNewSiteActivity.java:98) 07-05 23:41:57.638:E/AndroidRuntime(23992):在com.android.rssreaderapplication.AddNewSiteActivity$loadRSSFeed.doInBackground(AddNewSiteActivity.java:1) 07-05 23:41:57.638:E/AndroidRuntime(23992):在android.os.AsyncTask$2.call(AsyncTask.java:287) 07-05 23:41:57.638:E/AndroidRuntime(23992):在java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 07-05 23:41:57.638:E/AndroidRuntime(23992):。。。还有5个 07-05 23:41:58.468:E/WindowManager(23992):Activity com.android.rssreaderapplication.addnewsite活动泄漏了window com.android.internal.policy.impl.PhoneWindow$DecorView@41d9e000原来是加在这里的 07-05 23:41:58.468:E/WindowManager(23992):android.view.WindowLeaked:Activity com.android.rssreaderapplication.addnewsite活动已泄漏window com.android.internal.policy.impl.PhoneWindow$DecorView@41d9e000原来是加在这里的 07-05 23:41:58.468:E/WindowManager(23992):在android.view.ViewRootImpl。(ViewRootImpl.java:380) 07-05 23:41:58.468:E/WindowManager(23992):在android.view.WindowManagerImpl.addView(WindowManagerImpl.java:292) 07-05 23:41:58.468:E/WindowManager(23992):在android.view.WindowManagerImpl.addView(WindowManagerImpl.java:224) 07-05 23:41:58.468:E/WindowManager(23992):在android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:149) 07-05 23:41:58.468:E/WindowManager(23992):在android.view.Window$LocalWindowManager.addView(Window.java:547) 07-05 23:41:58.468:E/WindowManager(23992):在android.app.Dialog.show(Dialog.java:277) 07-05 23:41:58.468:E/WindowManager(23992):位于com.android.rssreaderapplication.AddNewSiteActivity$loadRSSFeed.onPreExecute(AddNewSiteActivity.java:89) 07-05 23:41:58.468:E/WindowManager(23992):位于android.os.AsyncTask.executeOnExecutor(AsyncTask.java:586) 07-05 23:41:58.468:E/WindowManager(23992):在android.os.AsyncTask.execute(AsyncTask.java:534) 07-05 23:41:58.468:E/WindowManager(23992):位于com.android.rssreaderapplication.AddNewSiteActivity$1.onClick(AddNewSiteActivity.java:53) 07-05 23:41:58.468:E/WindowManager(23992):在android.view.view.performClick(view.java:4107)上 07-05 23:41:58.468:E/WindowManager(23992):在android.view.view$PerformClick.run(view.java:17065) 07-05 23:41:58.468:E/WindowManager(23992):在android.os.Handler.handleCallback(Handler.java:615) 07-05 23:41:58.468:E/WindowManager(23992):位于android.os.Handler.dispatchMessage(Handler.java:92) 07-05 23:41:58.468:E/WindowManager(23992):位于android.os.Looper.loop(Looper.java:137) 07-05 23:41:58.468:E/WindowManager(23992):位于android.app.ActivityThread.main(ActivityThread.java:4830) 07-05 23:41:58.468:E/WindowManager(23992):位于java.lang.reflect.Method.Invokenactive(本机方法) 07-05 23:41:58.468:E/WindowManager(23992):位于java.lang.reflect.Method.invoke(Method.java:511) 07-05 23:41:58.468:E/WindowManager(23992):位于com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 07-05 23:41:58.468:E/WindowManager(23992):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556) 07-05 23:41:58.468:E/WindowManager(23992):在dalvik.system.NativeStart.main(本机方法) 07-05 23:42:03.508:I/进程(23992):发送信号。PID:23992信号:9

获得'';不幸的是,RSS应用程序已停止'';,显示的logcat'';致命异常:Asnyc任务2''; 07-05 23:41:57.638:E/AndroidRuntime(23992):致命异常:AsyncTask#2 07-05 23:41:57.638:E/AndroidRuntime(23992):java.lang.RuntimeException:执行doInBackground()时出错 07-05 23:41:57.638:E/AndroidRuntime(23992):在android.os.AsyncTask$3.done(AsyncTask.java:299) 07-05 23:41:57.638:E/AndroidRuntime(23992):位于java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273) 07-05 23:41:57.638:E/AndroidRuntime(23992):位于java.util.concurrent.FutureTask.setException(FutureTask.java:124) 07-05 23:41:57.638:E/AndroidRuntime(23992):在java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307) 07-05 23:41:57.638:E/AndroidRuntime(23992):在java.util.concurrent.FutureTask.run(FutureTask.java:137) 07-05 23:41:57.638:E/AndroidRuntime(23992):在android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 07-05 23:41:57.638:E/AndroidRuntime(23992):位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 07-05 23:41:57.638:E/AndroidRuntime(23992):位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 07-05 23:41:57.638:E/AndroidRuntime(23992):在java.lang.Thread.run(Thread.java:856)处 07-05 23:41:57.638:E/AndroidRuntime(23992):原因:java.lang.NoClassDefFoundError:org.jsoup.jsoup 07-05 23:41:57.638:E/AndroidRuntime(23992):位于com.android.rssreaderapplication.RSSParser.getRSSLinkFromURL(RSSParser.java:157) 07-05 23:41:57.638:E/AndroidRuntime(23992):位于com.android.rssreaderapplication.RSSParser.getRSSFeed(RSSParser.java:57) 07-05 23:41:57.638:E/AndroidRuntime(23992):在com.android.rssreaderapplication.AddNewSiteActivity$loadRSSFeed.doInBackground(AddNewSiteActivity.java:98) 07-05 23:41:57.638:E/AndroidRuntime(23992):在com.android.rssreaderapplication.AddNewSiteActivity$loadRSSFeed.doInBackground(AddNewSiteActivity.java:1) 07-05 23:41:57.638:E/AndroidRuntime(23992):在android.os.AsyncTask$2.call(AsyncTask.java:287) 07-05 23:41:57.638:E/AndroidRuntime(23992):在java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 07-05 23:41:57.638:E/AndroidRuntime(23992):。。。还有5个 07-05 23:41:58.468:E/WindowManager(23992):Activity com.android.rssreaderapplication.addnewsite活动泄漏了window com.android.internal.policy.impl.PhoneWindow$DecorView@41d9e000原来是加在这里的 07-05 23:41:58.468:E/WindowManager(23992):android.view.WindowLeaked:Activity com.android.rssreaderapplication.addnewsite活动已泄漏window com.android.internal.policy.impl.PhoneWindow$DecorView@41d9e000原来是加在这里的 07-05 23:41:58.468:E/WindowManager(23992):在android.view.ViewRootImpl。(ViewRootImpl.java:380) 07-05 23:41:58.468:E/WindowManager(23992):在android.view.WindowManagerImpl.addView(WindowManagerImpl.java:292) 07-05 23:41:58.468:E/WindowManager(23992):在android.view.WindowManagerImpl.addView(WindowManagerImpl.java:224) 07-05 23:41:58.468:E/WindowManager(23992):在android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:149) 07-05 23:41:58.468:E/WindowManager(23992):在android.view.Window$LocalWindowManager.addView(Window.java:547) 07-05 23:41:58.468:E/WindowManager(23992):在android.app.Dialog.show(Dialog.java:277) 07-05 23:41:58.468:E/WindowManager(23992):位于com.android.rssreaderapplication.AddNewSiteActivity$loadRSSFeed.onPreExecute(AddNewSiteActivity.java:89) 07-05 23:41:58.468:E/WindowManager(23992):位于android.os.AsyncTask.executeOnExecutor(AsyncTask.java:586) 07-05 23:41:58.468:E/WindowManager(23992):在android.os.AsyncTask.execute(AsyncTask.java:534) 07-05 23:41:58.468:E/WindowManager(23992):位于com.android.rssreaderapplication.AddNewSiteActivity$1.onClick(AddNewSiteActivity.java:53) 07-05 23:41:58.468:E/WindowManager(23992):在android.view.view.performClick(view.java:4107)上 07-05 23:41:58.468:E/WindowManager(23992):在android.view.view$PerformClick.run(view.java:17065) 07-05 23:41:58.468:E/WindowManager(23992):在android.os.Handler.handleCallback(Handler.java:615) 07-05 23:41:58.468:E/WindowManager(23992):位于android.os.Handler.dispatchMessage(Handler.java:92) 07-05 23:41:58.468:E/WindowManager(23992):位于android.os.Looper.loop(Looper.java:137) 07-05 23:41:58.468:E/WindowManager(23992):位于android.app.ActivityThread.main(ActivityThread.java:4830) 07-05 23:41:58.468:E/WindowManager(23992):位于java.lang.reflect.Method.Invokenactive(本机方法) 07-05 23:41:58.468:E/WindowManager(23992):位于java.lang.reflect.Method.invoke(Method.java:511) 07-05 23:41:58.468:E/WindowManager(23992):位于com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 07-05 23:41:58.468:E/WindowManager(23992):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556) 07-05 23:41:58.468:E/WindowManager(23992):在dalvik.system.NativeStart.main(本机方法) 07-05 23:42:03.508:I/进程(23992):发送信号。PID:23992信号:9,java,web-services,url,android-asynctask,rss-reader,Java,Web Services,Url,Android Asynctask,Rss Reader,(现在,我展示了日志中提到的课程,如果需要其他课程,请告知,谢谢。) (这是我的主要活动代码:RssReaderApplication.java) import java.util.ArrayList; 导入java.util.HashMap; 导入java.util.List; 导入android.app.Activity; 导入android.app.ProgressDialog; 导入android.content.Intent; 导入android.os.AsyncTask; 导入and

(现在,我展示了日志中提到的课程,如果需要其他课程,请告知,谢谢。)
(这是我的主要活动代码:RssReaderApplication.java)

import java.util.ArrayList;
导入java.util.HashMap;
导入java.util.List;
导入android.app.Activity;
导入android.app.ProgressDialog;
导入android.content.Intent;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.view.ContextMenu;
导入android.view.ContextMenu.ContextMenuInfo;
导入android.view.Menu;
导入android.view.MenuItem;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.Ada
07-05 23:41:57.638: E/AndroidRuntime(23992): FATAL EXCEPTION: AsyncTask #2  
07-05 23:41:57.638: E/AndroidRuntime(23992): java.lang.RuntimeException: An error occured while executing doInBackground()  
07-05 23:41:57.638: E/AndroidRuntime(23992):    at android.os.AsyncTask$3.done(AsyncTask.java:299)  
07-05 23:41:57.638: E/AndroidRuntime(23992):    at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)  
07-05 23:41:57.638: E/AndroidRuntime(23992):    at java.util.concurrent.FutureTask.setException(FutureTask.java:124)  
07-05 23:41:57.638: E/AndroidRuntime(23992):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)  
07-05 23:41:57.638: E/AndroidRuntime(23992):    at java.util.concurrent.FutureTask.run(FutureTask.java:137)  
07-05 23:41:57.638: E/AndroidRuntime(23992):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)  
07-05 23:41:57.638: E/AndroidRuntime(23992):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)  
07-05 23:41:57.638: E/AndroidRuntime(23992):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)  
07-05 23:41:57.638: E/AndroidRuntime(23992):    at java.lang.Thread.run(Thread.java:856)  
07-05 23:41:57.638: E/AndroidRuntime(23992): Caused by: java.lang.NoClassDefFoundError: org.jsoup.Jsoup  
07-05 23:41:57.638: E/AndroidRuntime(23992):    at com.android.rssreaderapplication.RSSParser.getRSSLinkFromURL(RSSParser.java:157)  
07-05 23:41:57.638: E/AndroidRuntime(23992):    at com.android.rssreaderapplication.RSSParser.getRSSFeed(RSSParser.java:57)  
07-05 23:41:57.638: E/AndroidRuntime(23992):    at com.android.rssreaderapplication.AddNewSiteActivity$loadRSSFeed.doInBackground(AddNewSiteActivity.java:98)  
07-05 23:41:57.638: E/AndroidRuntime(23992):    at com.android.rssreaderapplication.AddNewSiteActivity$loadRSSFeed.doInBackground(AddNewSiteActivity.java:1)  
07-05 23:41:57.638: E/AndroidRuntime(23992):    at android.os.AsyncTask$2.call(AsyncTask.java:287)  
07-05 23:41:57.638: E/AndroidRuntime(23992):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)  
07-05 23:41:57.638: E/AndroidRuntime(23992):    ... 5 more  
07-05 23:41:58.468: E/WindowManager(23992): Activity com.android.rssreaderapplication.AddNewSiteActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@41d9e000 that was originally added here  
07-05 23:41:58.468: E/WindowManager(23992): android.view.WindowLeaked: Activity com.android.rssreaderapplication.AddNewSiteActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@41d9e000 that was originally added here  
07-05 23:41:58.468: E/WindowManager(23992):     at android.view.ViewRootImpl.<init>(ViewRootImpl.java:380)  
07-05 23:41:58.468: E/WindowManager(23992):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:292)  
07-05 23:41:58.468: E/WindowManager(23992):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:224)  
07-05 23:41:58.468: E/WindowManager(23992):     at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:149)  
07-05 23:41:58.468: E/WindowManager(23992):     at android.view.Window$LocalWindowManager.addView(Window.java:547)  
07-05 23:41:58.468: E/WindowManager(23992):     at android.app.Dialog.show(Dialog.java:277)  
07-05 23:41:58.468: E/WindowManager(23992):     at com.android.rssreaderapplication.AddNewSiteActivity$loadRSSFeed.onPreExecute(AddNewSiteActivity.java:89)  
07-05 23:41:58.468: E/WindowManager(23992):     at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:586)  
07-05 23:41:58.468: E/WindowManager(23992):     at android.os.AsyncTask.execute(AsyncTask.java:534)  
07-05 23:41:58.468: E/WindowManager(23992):     at com.android.rssreaderapplication.AddNewSiteActivity$1.onClick(AddNewSiteActivity.java:53)  
07-05 23:41:58.468: E/WindowManager(23992):     at android.view.View.performClick(View.java:4107)  
07-05 23:41:58.468: E/WindowManager(23992):     at android.view.View$PerformClick.run(View.java:17065)  
07-05 23:41:58.468: E/WindowManager(23992):     at android.os.Handler.handleCallback(Handler.java:615)  
07-05 23:41:58.468: E/WindowManager(23992):     at android.os.Handler.dispatchMessage(Handler.java:92)  
07-05 23:41:58.468: E/WindowManager(23992):     at android.os.Looper.loop(Looper.java:137)  
07-05 23:41:58.468: E/WindowManager(23992):     at android.app.ActivityThread.main(ActivityThread.java:4830)  
07-05 23:41:58.468: E/WindowManager(23992):     at java.lang.reflect.Method.invokeNative(Native Method)  
07-05 23:41:58.468: E/WindowManager(23992):     at java.lang.reflect.Method.invoke(Method.java:511)  
07-05 23:41:58.468: E/WindowManager(23992):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)  
07-05 23:41:58.468: E/WindowManager(23992):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)  
07-05 23:41:58.468: E/WindowManager(23992):     at dalvik.system.NativeStart.main(Native Method)  
07-05 23:42:03.508: I/Process(23992): Sending signal. PID: 23992 SIG: 9
import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;

    import android.app.Activity;
    import android.app.ProgressDialog;
    import android.content.Intent;
    import android.os.AsyncTask;
    import android.os.Bundle;
    import android.view.ContextMenu;
    import android.view.ContextMenu.ContextMenuInfo;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.ImageButton;
    import android.widget.ListAdapter;
    import android.widget.ListView;
    import android.widget.SimpleAdapter;
    import android.widget.TextView;

    public class RssReaderApplication extends Activity {
        // Progress Dialog
        private ProgressDialog pDialog;

        // Array list for list view
        ArrayList<HashMap<String, String>> rssFeedList;

        RSSParser rssParser = new RSSParser();

        RSSFeed rssFeed;

        // button add new website
        ImageButton btnAddSite;

        // array to trace sqlite ids
        String[] sqliteIds;

        public static String TAG_ID = "id";
        public static String TAG_TITLE = "title";
        public static String TAG_LINK = "link";

        // List view
        ListView lv;

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.site_list);

            btnAddSite = (ImageButton) findViewById(R.id.btnAddSite);


            // Hashmap for ListView
            rssFeedList = new ArrayList<HashMap<String, String>>();


            /**
             * Calling a background thread which will load
             * web sites stored in SQLite database
             * */
            new loadStoreSites().execute();

            // selecting single ListView item
            lv = (ListView) findViewById(R.id.list);

            // Launching new screen on Selecting Single ListItem
            lv.setOnItemClickListener(new OnItemClickListener() {

                public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {
                    // getting values from selected ListItem
                    String sqlite_id = ((TextView) view.findViewById(R.id.sqlite_id)).getText().toString();
                    // Starting new intent
                    Intent in = new Intent(getApplicationContext(), ListRSSItemsActivity.class);
                    // passing sqlite row id
                    in.putExtra(TAG_ID, sqlite_id);
                    startActivity(in);
                }
            });


            /**
             * Add new website button click event listener
             * */
            btnAddSite.setOnClickListener(new View.OnClickListener() {

                public void onClick(View v) {
                    Intent i = new Intent(getApplicationContext(), AddNewSiteActivity.class);
                    // starting new activity and expecting some response back
                    // depending on the result will decide whether new website is
                    // added to SQLite database or not
                    startActivityForResult(i, 100);
                }
            });
        }

        /**
         * Response from AddNewSiteActivity.java
         * if response is 100 means new site is added to sqlite
         * reload this activity again to show
         * newly added website in listview
         * */
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            // if result code 100
            if (resultCode == 100) {
                // reload this screen again
                Intent intent = getIntent();
                finish();
                startActivity(intent);
            }
        }

        /**
         * Building a context menu for listview
         * Long press on List row to see context menu
         * */
        @Override
        public void onCreateContextMenu(ContextMenu menu, View v,
            ContextMenuInfo menuInfo) {
          if (v.getId()==R.id.list) {
            menu.setHeaderTitle("Delete");
                menu.add(Menu.NONE, 0, 0, "Delete Feed");
          }
        }

        /**
         * Responding to context menu selected option
         * */
        @Override
        public boolean onContextItemSelected(MenuItem item) {
          AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
          int menuItemIndex = item.getItemId();
          // check for selected option
          if(menuItemIndex == 0){
              // user selected delete
              // delete the feed
              RSSDatabaseHandler rssDb = new RSSDatabaseHandler(getApplicationContext());
              WebSite site = new WebSite();
              site.setId(Integer.parseInt(sqliteIds[info.position]));
              rssDb.deleteSite(site);
              //reloading same activity again
              Intent intent = getIntent();
              finish();
              startActivity(intent);
          }

          return true;
        }

        /**
         * Background Async Task to get RSS data from URL
         * */
        class loadStoreSites extends AsyncTask<String, String, String> {

            /**
             * Before starting background thread Show Progress Dialog
             * */
            @Override
            protected void onPreExecute() {
                super.onPreExecute();
                pDialog = new ProgressDialog(
                        RssReaderApplication.this);
                pDialog.setMessage("Loading websites ...");
                pDialog.setIndeterminate(false);
                pDialog.setCancelable(false);
                pDialog.show();
            }

            /**
             * getting all stored website from SQLite
             * */
            @Override
            protected String doInBackground(String... args) {
                // updating UI from Background Thread
                runOnUiThread(new Runnable() {
                    public void run() {
                        RSSDatabaseHandler rssDb = new RSSDatabaseHandler(
                                getApplicationContext());

                        // listing all websites from SQLite
                        List<WebSite> siteList = rssDb.getAllSites();

                        sqliteIds = new String[siteList.size()];

                        // loop through each website
                        for (int i = 0; i < siteList.size(); i++) {

                            WebSite s = siteList.get(i);

                            // creating new HashMap
                            HashMap<String, String> map = new HashMap<String, String>();

                            // adding each child node to HashMap key => value
                            map.put(TAG_ID, s.getId().toString());
                            map.put(TAG_TITLE, s.getTitle());
                            map.put(TAG_LINK, s.getLink());

                            // adding HashList to ArrayList
                            rssFeedList.add(map);

                            // add sqlite id to array
                            // used when deleting a website from sqlite
                            sqliteIds[i] = s.getId().toString();
                        }
                        /**
                         * Updating list view with websites
                         * */
                        ListAdapter adapter = new SimpleAdapter(
                                RssReaderApplication.this,
                                rssFeedList, R.layout.site_list_row,
                                new String[] { TAG_ID, TAG_TITLE, TAG_LINK },
                                new int[] { R.id.sqlite_id, R.id.title, R.id.link });
                        // updating listview
                        lv.setAdapter(adapter);
                        registerForContextMenu(lv);
                    }
                });
                return null;
            }

            /**
             * After completing background task Dismiss the progress dialog
             * **/
            protected void onPostExecute(String args) {
                // dismiss the dialog after getting all products
                pDialog.dismiss();
            }

        }
    }
import java.util.List;


public class RSSFeed {

String _title;
String _description;
String _link;
String _rss_link;
String _language;
List<RSSItem> _items;

// constructor
public RSSFeed(String title, String description, String link,String rss_link, String language) {
    this._title = title;
    this._description = description;
    this._link = link;
    this._rss_link = rss_link;
    this._language = language;
}

/**
 * All set methods
 * */
public void setItems(List<RSSItem> items) {
    this._items = items;
}

/**
 * All get methods
 * */
public List<RSSItem> getItems() {
    return this._items;
}

public String getTitle() {
    return this._title;
}

public String getDescription() {
    return this._description;
}

public String getLink() {
    return this._link;
}

public String getRSSLink() {
    return this._rss_link;
}

public String getLanguage() {
    return this._language;
}
}
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class AddNewSiteActivity extends Activity {

Button btnSubmit;
Button btnCancel;
EditText txtUrl;
TextView lblMessage;

RSSParser rssParser = new RSSParser();

RSSFeed rssFeed;

// Progress Dialog
private ProgressDialog pDialog;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.add_site);

    // buttons
    btnSubmit = (Button) findViewById(R.id.btnSubmit);
    btnCancel = (Button) findViewById(R.id.btnCancel);
    txtUrl = (EditText) findViewById(R.id.txtUrl);
    lblMessage = (TextView) findViewById(R.id.lblMessage);

    // Submit button click event
    btnSubmit.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            String url = txtUrl.getText().toString();

            // Validation url
            Log.d("URL Length", "" + url.length());
            // check if user entered any data in EditText
            if (url.length() > 0) {
                lblMessage.setText("");
                String urlPattern = "^http(s{0,1})://[a-zA-Z0-9_/\\-\\.]+\\.([A-Za-z/]{2,5})[a-zA-Z0-9_/\\&\\?\\=\\-\\.\\~\\%]*";
                if (url.matches(urlPattern)) {
                    // valid url
                    new loadRSSFeed().execute(url);
                } else {
                    // URL not valid
                    lblMessage.setText("Please enter a valid url");
                }
            } else {
                // Please enter url
                lblMessage.setText("Please enter website url");
            }

        }
    });

    // Cancel button click event
    btnCancel.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            finish();
        }
    });
}

/**
 * Background Async Task to get RSS data from URL
 * */
class loadRSSFeed extends AsyncTask<String, String, String> {

    /**
     * Before starting background thread Show Progress Dialog
     * */
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        pDialog = new ProgressDialog(AddNewSiteActivity.this);
        pDialog.setMessage("Fetching RSS Information ...");
        pDialog.setIndeterminate(false);
        pDialog.setCancelable(false);
        pDialog.show();
    }

    /**
     * getting Inbox JSON
     * */
    @Override
    protected String doInBackground(String... args) {
        String url = args[0];
        rssFeed = rssParser.getRSSFeed(url);
        Log.d("rssFeed", " "+ rssFeed);
        if (rssFeed != null) {
            Log.e("RSS URL",
                    rssFeed.getTitle() + "" + rssFeed.getLink() + ""
                            + rssFeed.getDescription() + ""
                            + rssFeed.getLanguage());
            RSSDatabaseHandler rssDb = new RSSDatabaseHandler(
                    getApplicationContext());
            WebSite site = new WebSite(rssFeed.getTitle(), rssFeed.getLink(), rssFeed.getRSSLink(),
                    rssFeed.getDescription());
            rssDb.addSite(site);
            Intent i = getIntent();
            // send result code 100 to notify about product update
            setResult(100, i);
            finish();
        } else {
            // updating UI from Background Thread
            runOnUiThread(new Runnable() {
                public void run() {
                    lblMessage.setText("Rss url not found. Please check the url or try again");
                }
            });
        }
        return null;
    }

    /**
     * After completing background task Dismiss the progress dialog
     * **/
    protected void onPostExecute(String args) {
        // dismiss the dialog after getting all products
        pDialog.dismiss();
        // updating UI from Background Thread
        runOnUiThread(new Runnable() {
            public void run() {
                if (rssFeed != null) {

                }

            }
        });

    }

}
}
07-05 23:41:57.638: E/AndroidRuntime(23992): Caused by: java.lang.NoClassDefFoundError: org.jsoup.Jsoup