包文件不存在

时间:2018-05-01 16:39:52

标签: java file gradle

这是我的班级VideoList.java名下的代码。我做了改变 API的版本 - 甚至是Android版本 - 但仍然有这个 问题:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.util.ArrayList;

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.HttpConnectionParams;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;

import com.android.volley.RequestQueue;
import com.android.volley.toolbox.ImageLoader;
import com.android.volley.toolbox.Volley;
import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdSize;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.InterstitialAd;

import com.youtubekids.cartoons.pojo.VideoPojo;

public class VideoList extends ActionBarActivity {
    RequestQueue mRequestQueue;
    ImageLoader mImageLoader;
    LruBitmapCache mLruBitmapCache;
    ImageLoader imageLoader;
    ListView lvvideos;
    String CHANNEL_ID;
    String YOUTUBE_URL = "", YOUTUBEAPIKEY = DataManager.YOUTUBE_API_KEY;
    String NEXT_PAGE_TOKEN = "";
    ProgressDialog progress;
    int total = 0;
    ArrayList<VideoPojo> videolist = new ArrayList<VideoPojo>();
    Custom_Adapter adapter;
    boolean loadmore = false;
    TextView txtfooter;
    private AdView adView;
    private static final String AD_UNIT_ID = DataManager.ADMOB_BANNER;
    private InterstitialAd interstitial;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_video_list);
        lvvideos = (ListView) findViewById(R.id.lvvideos);
        CHANNEL_ID = DataManager.selectedchannelid;


        adView = new AdView(this);

        adView.setAdSize(AdSize.BANNER);
        adView.setAdUnitId(AD_UNIT_ID);
        AdRequest adRequest = new AdRequest.Builder().build();

        adView.loadAd(adRequest);
        LinearLayout ll = (LinearLayout) findViewById(R.id.ad);
        ll.addView(adView);

           txtfooter = (TextView) findViewById(R.id.txtfooter);
            txtfooter.setVisibility(View.GONE);
        new loadvideos().execute();



        lvvideos.setOnScrollListener(new AbsListView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(AbsListView view, int scrollState) {
                if (scrollState == SCROLL_STATE_IDLE) {
                    if (lvvideos.getLastVisiblePosition() >= lvvideos.getCount() - 1) {

                        if (loadmore) {
                            new loadvideos().execute();
                            txtfooter.setText(" Loading more videos...");
                            txtfooter.setVisibility(View.VISIBLE);
                        } else {
                            txtfooter.setText("No More Videos");
                            txtfooter.setVisibility(View.GONE);
                        }
                    }
                }


            }

            @Override
            public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {


            }
        });

        lvvideos.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                                    int position, long id) {
                // TODO Auto-generated method stub
                DataManager.selectedvideoid = videolist.get(position).getVideoid();
                Intent i = new Intent(VideoList.this, YouTubePlayerActivity.class);
                startActivity(i);
                overridePendingTransition(0, 0);
            }
        });
        getSupportActionBar().setTitle(DataManager.channelname);

        // Begin loading your interstitial.
        AdRequest adRequest1 = new AdRequest.Builder().build();
        interstitial = new InterstitialAd(this);
        interstitial.setAdUnitId(DataManager.ADMOB_INTERSTIAL);

        interstitial.loadAd(adRequest1);
        AdListener adListener = new AdListener() {

            @Override
            public void onAdLoaded() {
                super.onAdLoaded();

            }

            @Override
            public void onAdClosed() {
                super.onAdClosed();


            }
        };

        interstitial.setAdListener(adListener);
    }

    public void nointernet()
    {
        new AlertDialog.Builder(this)
                .setTitle("Connection Error")
                .setMessage("Try Again")
                .setNegativeButton(android.R.string.no, null)
                .setPositiveButton(android.R.string.yes,
                        new DialogInterface.OnClickListener() {

                            public void onClick(DialogInterface arg0, int arg1) {

                                    new loadvideos().execute();

                            }
                        }).create().show();

    }
    public void displayInterstitial() {
        if (interstitial.isLoaded()) {
            interstitial.show();
        }
    }

    @Override
    public void onBackPressed() {

        Intent i = new Intent(VideoList.this, MainActivity.class);
        finish();
        startActivity(i);
        overridePendingTransition(0,0);

    }




    private class loadvideos extends AsyncTask<Void, Void, Void> {
        boolean isconnect = false;

        @Override
        protected void onPreExecute() {
            // Showing progress dialog before sending http request.
        if (!loadmore)
        {
            progress = GoogleProgress.Progressshow(VideoList.this);
            progress.show();
        }
        }

        protected Void doInBackground(Void... unused) {

            try {

                HttpClient client = new DefaultHttpClient();
                HttpConnectionParams.setConnectionTimeout(client.getParams(),
                        15000);
                HttpConnectionParams.setSoTimeout(client.getParams(), 15000);

                if (!loadmore) {
                    YOUTUBE_URL = "https://www.googleapis.com/youtube/v3/search?part=snippet&channelId="
                            + CHANNEL_ID
                            + "&maxResults="
                            + DataManager.maxResults + "&key=" + YOUTUBEAPIKEY+"&order=date";
                } else {
                    YOUTUBE_URL = "https://www.googleapis.com/youtube/v3/search?part=snippet&pageToken="
                            + NEXT_PAGE_TOKEN
                            + "&channelId="
                            + CHANNEL_ID
                            + "&maxResults="
                            + DataManager.maxResults
                            + "&key="
                            + YOUTUBEAPIKEY+"&order=date";
                }

                HttpUriRequest request = new HttpGet(YOUTUBE_URL);

                HttpResponse response = client.execute(request);

                InputStream atomInputStream = response.getEntity().getContent();

                BufferedReader in = new BufferedReader(new InputStreamReader(
                        atomInputStream));

                String line;
                String str = "";
                while ((line = in.readLine()) != null) {
                    str += line;
                }

                System.out.println("url---" + str);

                JSONObject json = new JSONObject(str);
                JSONArray items = json.getJSONArray("items");

                total = json.getJSONObject("pageInfo").getInt("totalResults");
                if (total > 20) {
                    loadmore = true;
                    NEXT_PAGE_TOKEN = json.getString("nextPageToken");
                }

                for (int i = 0; i < items.length(); i++) {

                    VideoPojo video = new VideoPojo();
                    JSONObject youtubeObject = items.getJSONObject(i)
                            .getJSONObject("snippet");

                    video.setVideoid(items.getJSONObject(i).getJSONObject("id")
                            .getString("videoId"));
                    video.setTitle(youtubeObject.getString("title"));
                    video.setThumbnail(youtubeObject
                            .getJSONObject("thumbnails").getJSONObject("high")
                            .getString("url"));

                    videolist.add(video);
                }

                isconnect = true;
            } catch (MalformedURLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                isconnect = false;
                System.out.println("1exception---" + e.toString());
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                isconnect = false;
                System.out.println("2exception---" + e.toString());
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                System.out.println("3exception---" + e.getMessage());
                e.printStackTrace();
            }

            return (null);
        }

        protected void onPostExecute(Void unused) {
            // Closing progress dialog.
            progress.dismiss();
            if (isconnect) {
                if (videolist.size() > 0) {


                      displayInterstitial();
                    adapter = new Custom_Adapter(getApplicationContext());
                    lvvideos.setAdapter(adapter);

                      if (loadmore)
                            lvvideos.setSelection(((videolist.size() - DataManager.maxResults)-1));
                        else
                            lvvideos.setSelection(0);


                    if (total > videolist.size()) {
                        loadmore = true;
                    }else
                    {
                        loadmore = false;
                    }
                }
            } else {
                nointernet();

            }
        }
    }

    public class Custom_Adapter extends BaseAdapter {

        private LayoutInflater mInflater;

        public Custom_Adapter(Context c) {
            mInflater = LayoutInflater.from(c);
            imageLoader = getImageLoader(c);
        }

        @Override
        public int getCount() {
            return videolist.size();
        }

        @Override
        public Object getItem(int position) {
            return null;
        }

        @Override
        public long getItemId(int position) {
            return 0;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            ViewHolder holder;
            if (convertView == null) {

                convertView = mInflater.inflate(R.layout.row_video_list, null);

                holder = new ViewHolder();

                holder.txttitle = (TextView) convertView
                        .findViewById(R.id.txttitle);

                holder.img = (FeedImageView) convertView.findViewById(R.id.img);

                convertView.setTag(holder);

            } else {
                holder = (ViewHolder) convertView.getTag();
            }

            holder.txttitle.setText("" + videolist.get(position).getTitle());

            holder.img.setImageUrl(videolist.get(position).getThumbnail(),
                    imageLoader);

            return convertView;
        }

        class ViewHolder {
            TextView txttitle;
            FeedImageView img;

        }

    }

    public RequestQueue getRequestQueue(Context context) {
        if (mRequestQueue == null) {
            mRequestQueue = Volley.newRequestQueue(context);
        }

        return mRequestQueue;
    }

    public ImageLoader getImageLoader(Context context) {
        getRequestQueue(context);
        if (mImageLoader == null) {
            getLruBitmapCache();
            mImageLoader = new ImageLoader(mRequestQueue, mLruBitmapCache);
        }

        return this.mImageLoader;
    }

    public LruBitmapCache getLruBitmapCache() {
        if (mLruBitmapCache == null)
            mLruBitmapCache = new LruBitmapCache();
        return this.mLruBitmapCache;
    }
}

所以这是我的代码 当我尝试构建我的apk或调试项目时,我看到以下错误:

  

构建失败1m 1s 703ms运行构建59s 306ms加载构建4s 974ms运行
  init脚本4s 952ms应用脚本sync.local.repo293.gradle 4s 951ms
  评估设置6ms配置构建13s 725ms计算任务
  图25s 469ms运行任务15s 117ms null
  /Users/ismailtaibi/Downloads/fortinvideoappyt-3.1/codecanyon-11481105-fortin-video-channel-app-youtube-api-v3/FortinYoutubeChannelV3AndroidSource app / src / main / java com / youtubekids / cartoons / VideoList.java错误:   包org.apache.http不存在错误:包
  org.apache.http.client.methods不存在错误:包
  org.apache.http.impl.client不存在错误:找不到符号
  class DefaultHttpClient错误:找不到符号类HttpGet

1 个答案:

答案 0 :(得分:0)

您需要添加HttpClient作为项目的依赖项。在这里,您将获得有关您必须添加到.build.pom文件中的成绩/专家依赖关系的详细信息

https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient/4.5