java - 包文件不存在

标签 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 或调试项目时,我看到以下错误:

build failed 1m 1s 703ms Run build 59s 306ms Load build 4s 974ms Run
init scripts 4s 952ms Apply script sync.local.repo293.gradle 4s 951ms
Evaluate settings 6ms Configure build 13s 725ms Calculate task
graph 25s 469ms Run tasks 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 error: package org.apache.http does not exist error: package
org.apache.http.client.methods does not exist error: package
org.apache.http.impl.client does not exist error: cannot find symbol
class DefaultHttpClient error: cannot find symbol class HttpGet

最佳答案

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

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

关于java - 包文件不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50120352/

相关文章:

java - 了解java中的 'TypeElement'和 'DeclaredType'接口(interface)

Android:ExternalSystemException:字符串索引超出范围:-130 构建版本

iphone - 核心数据 : Error, "Can' t 合并模型与两个名为 'foo' 的不同实体“

powershell - 检查文件是否已经被移动?

java - 将 Json 从 Android 应用程序发送到本地数据库

spring-boot - 使用 Gradle 在 Spring Boot 项目中自定义属性

java - 如何对齐在类内部而不是 xml 文件中动态创建的 imageView

Java 数组索引检查

java - 带有静态访问修饰符的最终变量

android - 无法将图像保存在指定的文件位置