当前位置: 首页 > 知识库问答 >
问题:

空指针异常背后的原因?

宦炜
2023-03-14

我正在使用寻呼机适配器来显示视图寻呼机中的图像,这将在异步任务中由bitmap工厂下载。

pageradapter类:

public class pageradapter extends PagerAdapter {
    Button load_img;
    ImageView imgview;
    Bitmap bitmap;



    Context mContext;
    LayoutInflater mLayoutInflater;
    List<String> l = MainActivity.list;
    ImageLoader mImageLoader;

    public pageradapter(Context context) {
        mContext = context;


    }

    @Override
    public int getCount() {
        return 4;
    }


    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        ImageLoader mImageLoader = ImageLoader.getInstance();
        mLayoutInflater = ((LayoutInflater) container.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE));
        View view = mLayoutInflater.inflate(R.layout.img, container, false);
          imgview = (ImageView) view.findViewById(R.id.imageView3);

Bitmap btp=new LoadImage().doInBackground(l.get(position));
        imgview.setImageBitmap(btp);

        container.addView(view);

        return view;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((LinearLayout) object);
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view == object;
    }

    public class LoadImage extends AsyncTask<String, String, Bitmap> {

        ProgressDialog pDialog = new ProgressDialog(mContext);
        @Override
        protected void onPreExecute() {
            super.onPreExecute();

            pDialog.setMessage("Loading Image ....");
            pDialog.show();

        }
        protected Bitmap doInBackground(String... args) {

            try {
                bitmap = BitmapFactory.decodeStream((InputStream) new URL(args[0]).getContent());

            } catch (Exception e) {
                e.printStackTrace();
            }
            return bitmap;
        }

        protected void onPostExecute(Bitmap image) {

            if(image != null){
                imgview.setImageBitmap(image);
                pDialog.dismiss();

            }else{

                pDialog.dismiss();
                Toast.makeText(mContext, "Image Does Not exist or Network Error", Toast.LENGTH_SHORT).show();

            }
        }
    }

}

我的日志:

02-08 18:49:22.55418345-18345/奥托涅。dg10 E/AndroidRuntime:致命异常:主java。autogenie上的lang.NullPointerException。dg10。pageradapter$LoadImage。autogenie的doInBackground(pageradapter.java:89)。dg10。寻呼机。在android上实例化Item(pageradapter.java:54)。支持v4。看法寻呼机。android上的addNewItem(ViewPager.java:870)。支持v4。看法寻呼机。在android上填充(ViewPager.java:1020)。支持v4。看法寻呼机。在android上填充(ViewPager.java:952)。支持v4。看法寻呼机。android上的onMeasure(ViewPager.java:1474)。看法看法在android上测量(View.java:15518)。小装置。相对论。在android上测量水平(RelativeLayout.java:681)。小装置。相对论。android上的onMeasure(RelativeLayout.java:461)。看法看法在android上测量(View.java:15518)。看法视图组。android上的measureChildWithMargins(ViewGroup.java:4825)。小装置。框架布局。android上的onMeasure(FrameLayout.java:310)。支持v7。小装置。ContentFrameLayout。android上的onMeasure(ContentFrameLayout.java:135)。看法看法在android上测量(View.java:15518)。看法视图组。android上的measureChildWithMargins(ViewGroup.java:4825)。支持v7。小装置。操作Baroverlay布局。android上的onMeasure(ActionBarOverlayLayout.java:391)。看法看法在android上测量(View.java:15518)。看法视图组。android上的measureChildWithMargins(ViewGroup.java:4825)。小装置。框架布局。android上的onMeasure(FrameLayout.java:310)。看法看法在android上测量(View.java:15518)。看法视图组。android上的measureChildWithMargins(ViewGroup.java:4825)。小装置。线性布局。android上的measureChildBeforeLayout(LinearLayout.java:1404)。小装置。线性布局。android上的measureVertical(LinearLayout.java:695)。小装置。线性布局。android上的onMeasure(LinearLayout.java:588)。看法看法在android上测量(View.java:15518)。看法视图组。android上的measureChildWithMargins(ViewGroup.java:4825)。小装置。框架布局。com上的onMeasure(FrameLayout.java:310)。Android内部的政策impl。电话窗口$DecorView。android上的onMeasure(PhoneWindow.java:2176)。看法看法在android上测量(View.java:15518)。看法ViewRootImpl。android上的performMeasure(ViewRootImpl.java:1874)。看法ViewRootImpl。android上的measureHierarchy(ViewRootImpl.java:1089)。看法ViewRootImpl。android上的performTraversals(ViewRootImpl.java:1265)。看法ViewRootImpl。android上的doTraversal(ViewRootImpl.java:989)。看法ViewRootImpl$TraversalRunnable。在android上运行(ViewRootImpl.java:4351)。看法编舞$CallbackRecord。在android上运行(Choreographer.java:749)。看法编舞android上的doCallbacks(Choreographer.java:562)。看法编舞android上的doFrame(Choreographer.java:532)。看法Choreographer$FrameDisplayEventReceiver。在android上运行(Choreographer.java:735)。操作系统。处理程序。android上的handleCallback(Handler.java:725)。操作系统。处理程序。android上的dispatchMessage(Handler.java:92)。操作系统。活套。android上的loop(Looper.java:137)。应用程序。活动线程。java上的main(ActivityThread.java:5041)。朗。反思。方法java上的invokenactive(本机方法)。朗。反思。方法在com上调用(Method.java:511)。Android内部的操作系统。ZygoteInit$MethodandArgscaler。在com上运行(ZygoteInit.java:793)。Android内部的操作系统。合子体。dalvik的main(ZygoteInit.java:560)。系统原生艺术。主(本机方法)

共有1个答案

龙枫
2023-03-14

错误的方式调用AsyncWG。您不直接调用doInbackground()

改变

Bitmap btp=new LoadImage().doInBackground(l.get(position));

Bitmap btp = new LoadImage().execute(l.get(position));
 类似资料:
  • 问题内容: 有可能这可能是一个双重问题。我将String变量初始化为null。我可能会或可能不会使用一个值更新它。现在我想检查此变量是否不等于null以及我尝试执行的操作是否会得到null指针异常。空指针异常,因为它代价高昂。是否有任何有效的解决方法.TIA 问题答案: 如果您使用 你 不会 得到。 我怀疑你在做什么: 这是因为null 而引发,而不是因为null。 如果仍然无法解释,请发布您用于

  • 我已经更新了我的项目中的一些依赖关系之后,我的Hibernate配置类显示Nullpointerx的。 我将SpringDataJPA存储库与hibernate一起使用,已经超过24小时了,仍然没有找到任何关于小问题的适当解决方案。 我已经尝试过的一些解决方案:- 使用@bean(name=“entityManagerFactory”)提供bean名称 我面临的问题 波姆。xml文件 配置类 db

  • 当我试图从DB查询结果时,我得到一个空指针异常。以下是错误: 这是错误产生的函数。 如果我启动应用程序信息服务(=new ApplicationInfoService()),我会得到一个指向我的服务类的空指针错误,在这里进行查询 错误转到createQuery行,如果我打印出EntityManager,它将返回“null”。为什么我的Entitymanager不能初始化。我在我的登录系统中使用了几

  • 因此,我必须创建一个方法,将输入字符串分成名字/中间名/姓氏,计算创建的“学生”的数量,等等,然后我必须创建测试这些方法的类。 这是我测试代码的方式: } 当它为具有2个名称的学生测试toString时,我一直遇到空指针异常,我不知道为什么。

  • 当你点击btnChangePass,我得到错误。 我有一个错误: FATAL EXCEPTION:主进程:com.company.learn2,PID:18854java.lang.NullPointerExcture atcom.company.learn2。Heslo.change密码(Heslo.java:84)在com.company.learn2。Heslo.on点击(Heslo.jav