库活动imageLoader出错

时间:2011-07-21 19:40:52

标签: android

我一直在收到这些强制关闭我的活动的错误。它运行在常规设备上,但在平板电脑上我会收到这些错误吗?

07-21 19:34:45.472:ERROR / AndroidRuntime(409):在android.os.StrictMode $ AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1077)

07-21 19:34:45.472: ERROR/AndroidRuntime(409):     at java.net.InetAddress.lookupHostByName(InetAddress.java:477)

07-21 19:34:45.472: ERROR/AndroidRuntime(409):     at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:581)


07-21 19:34:45.472: ERROR/AndroidRuntime(409):     at com.you.MainMenu$ImageAdapter.getView(MainMenu.java:242)

07-21 19:34:45.472: ERROR/AndroidRuntime(409):     at android.view.View.measure(View.java:10828)

07-21 19:34:45.472: ERROR/AndroidRuntime(409):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4351)

它指着我:

    }
                @Override

                protected void onPostExecute(Void notUsed){
                    ((Gallery) findViewById(R.id.gallery))
                          .setAdapter(new ImageAdapter(MainMenu.this));


                }

当我评论它时,它运作良好。

这是我的imageLoader代码

                 public View getView(int position, View convertView, ViewGroup parent) {
                ImageView i = new ImageView(this.myContext);

                try {
                                /* Open a new URL and get the InputStream to load data from it. */
                                URL aURL = new URL(myRemoteImages[position]);
                                URLConnection conn = aURL.openConnection();

                                conn.connect();

                                InputStream is = conn.getInputStream();  
                                /* Buffered is always good for a performance plus. */
                                BufferedInputStream bis = new BufferedInputStream(is);
                                /* Decode url-data to a bitmap. */
                                Bitmap bm = BitmapFactory.decodeStream(bis);
                                bis.close();
                                is.close();
                                Log.v(imageUrl, "Retrieving image");

                                /* Apply the Bitmap to the ImageView that will be returned. */
                                i.setImageBitmap(bm);
                        } catch (IOException e) {

                                Log.e("DEBUGTAG", "Remtoe Image Exception", e);
                        }

                /* Image should be scaled as width/height are set. */
                i.setScaleType(ImageView.ScaleType.FIT_CENTER);
                /* Set the Width/Height of the ImageView. */
                i.setLayoutParams(new Gallery.LayoutParams(150, 150));
                return i;
                }

1 个答案:

答案 0 :(得分:2)

好像你遇到了这个bug。你在Honeycomb上测试吗?

https://github.com/mopub/mopub-client/issues/2

Honeycomb似乎不允许在主线程上进行网络访问。请参阅此主题Android Honeycomb: NetworkOnMainThreadException even when using AsyncTask and no strict mode?