错误原因:java.lang.OutOfMemoryError 加载图像

Posted

技术标签:

【中文标题】错误原因:java.lang.OutOfMemoryError 加载图像【英文标题】:error Caused by: java.lang.OutOfMemoryError Load Image 【发布时间】:2014-05-26 21:19:49 【问题描述】:

这是我在后台加载图片的方法,第一次和第二次正常加载。但是在这些加载之后,就会出现内存错误。我该如何解决这个问题?

public class MainArrayAdapterViewHolder extends ArrayAdapter<EmpresaListaPrincipal> 

private final Context context;
private ArrayList<EmpresaListaPrincipal> data_array;
public DisplayImageOptions options;
public ImageLoader imageLoader = ImageLoader.getInstance();

public MainArrayAdapterViewHolder(Context context, ArrayList<EmpresaListaPrincipal> list_of_ids) 

    super(context, R.layout.main_list_rowlayout, list_of_ids);
    this.context = context;
    this.data_array = list_of_ids;


    //------------- read more here https://github.com/nostra13/android-Universal-Image-Loader 

    options = new DisplayImageOptions.Builder().showImageForEmptyUri(R.drawable.ic_launcher).showImageOnFail(R.drawable.ic_launcher).resetViewBeforeLoading()
            .cacheOnDisc().imageScaleType(ImageScaleType.IN_SAMPLE_INT).bitmapConfig(Bitmap.Config.RGB_565).delayBeforeLoading(0).build();

    File cacheDir = StorageUtils.getCacheDirectory(context);
    ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context).memoryCacheExtraOptions(720, 1280) // default = device screen
                                                                                                                        // dimensions
            .discCacheExtraOptions(720, 1280, CompressFormat.JPEG, 100).threadPoolSize(3) // default
            .threadPriority(Thread.NORM_PRIORITY - 1) // default
            .memoryCacheSize(2 * 1024 * 1024).discCache(new UnlimitedDiscCache(cacheDir)) // default
            .discCacheSize(50 * 1024 * 1024).discCacheFileCount(100).discCacheFileNameGenerator(new HashCodeFileNameGenerator()) // default
            .imageDownloader(new BaseImageDownloader(context)) // default
            .tasksProcessingOrder(QueueProcessingType.FIFO) // default
            .defaultDisplayImageOptions(options) // default
            .build();

    imageLoader.init(config);



@Override
public View getView(int position, View convertView, ViewGroup parent) 

     ViewHolder viewholder;

     View v = convertView;


    //Asociamos el layout de la lista que hemos creado e incrustamos el ViewHolder
        if(convertView == null)

            LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            //View rowView = inflater.inflate(R.layout.main_list_rowlayout, parent, false);

             v = inflater.inflate(R.layout.main_list_rowlayout, parent, false);

             viewholder = new ViewHolder();


             viewholder.textView_main_row_title = (TextView) v.findViewById(R.id.textView_main_row_title);
                viewholder.imageView_restaurant_icon = (ImageView) v.findViewById(R.id.imageView_restaurant_icon);
                viewholder.textView_main_row_direccion = (TextView) v.findViewById(R.id.textView_main_row_direccion);
                v.setTag(viewholder);


        

    ImageLoadingListener mImageLoadingListenr = new ImageLoadingListener() 

        @Override
        public void onLoadingStarted(String arg0, View arg1) 
            // Log.e("* started *", String.valueOf("complete"));

        



        @Override
        public void onLoadingComplete(String arg0, View arg1, Bitmap arg2) 
            // Log.e("* complete *", String.valueOf("complete"));
        

        @Override
        public void onLoadingCancelled(String arg0, View arg1) 

        

        @Override
        public void onLoadingFailed(String arg0, View arg1, FailReason arg2) 
            // TODO Auto-generated method stub

        
    ;

    try 

         viewholder = (ViewHolder) v.getTag();

          viewholder.textView_main_row_title.setText(data_array.get(position).getNOMBRE());
          viewholder.textView_main_row_direccion.setText(data_array.get(position).getDIRECCION());


        String image = data_array.get(position).getURL();


        // ------- image ---------
        try 
            if (image.length() > 4) imageLoader.displayImage(image, viewholder.imageView_restaurant_icon, options, mImageLoadingListenr);               
         catch (Exception ex) 
        

        //textView_main_row_title.setText(name);
        //textView_main_row_address.setText(address);

     catch (Exception e) 
        // TODO: handle exception
    

    return v;


public class ViewHolder 
    public TextView textView_main_row_title;
    public TextView textView_main_row_direccion;

    //public TextView cargo;
    public ImageView imageView_restaurant_icon;



是的,我找到代码并调用了几次按活动填充图片

private Drawable getImageFromUrl(String url) 抛出异常 return Drawable.createFromStream((InputStream)new URL(url).getContent(), "src"); 在此输入代码



private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> 
    //declare variable of ImageView
    ImageView bmImage;

    public DownloadImageTask(ImageView bmImage) 
        //initialize variable with the passing ImageView parameter
        this.bmImage = bmImage;
    

    protected Bitmap doInBackground(String... urls) 
        //get url of image
        String urldisplay = urls[0];
        //create Bitmap variable
        Bitmap mIcon11 = null;
        try 
            //create instance of InputStream and pass URL
            InputStream in = new java.net.URL(urldisplay).openStream();
            //decode stream and initialize bitmap 
            mIcon11 = BitmapFactory.decodeStream(in);
         catch (Exception e) 
            //show error log

            Log.e("Error", e.getMessage());
            e.printStackTrace();
        
        //return bitmap
        return mIcon11;
    

    protected void onPostExecute(Bitmap result) 
        //get bitmap and initialize ImageView
        try 
            bmImage.setImageBitmap(result);

         catch (Exception e) 
            // TODO: handle exception
        

    

使用毕加索

在此处输入代码

public class MainArrayAdapterViewHolder extends ArrayAdapter<EmpresaListaPrincipal> 

private final Context context;
private ArrayList<EmpresaListaPrincipal> data_array;
public DisplayImageOptions options;
public ImageLoader imageLoader = ImageLoader.getInstance();

public MainArrayAdapterViewHolder(Context context, ArrayList<EmpresaListaPrincipal> list_of_ids) 

    super(context, R.layout.main_list_rowlayout, list_of_ids);
    this.context = context;
    this.data_array = list_of_ids;




@Override
public View getView(int position, View convertView, ViewGroup parent) 

     ViewHolder viewholder;

     View v = convertView;


    //Asociamos el layout de la lista que hemos creado e incrustamos el ViewHolder
        if(convertView == null)

            LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            //View rowView = inflater.inflate(R.layout.main_list_rowlayout, parent, false);

             v = inflater.inflate(R.layout.main_list_rowlayout, parent, false);

             viewholder = new ViewHolder();


             viewholder.textView_main_row_title = (TextView) v.findViewById(R.id.textView_main_row_title);
                viewholder.imageView_restaurant_icon = (ImageView) v.findViewById(R.id.imageView_restaurant_icon);
                viewholder.textView_main_row_direccion = (TextView) v.findViewById(R.id.textView_main_row_direccion);
                v.setTag(viewholder);


        


    try 

         viewholder = (ViewHolder) v.getTag();

          viewholder.textView_main_row_title.setText(data_array.get(position).getNOMBRE());
          viewholder.textView_main_row_direccion.setText(data_array.get(position).getDIRECCION());


        String image = data_array.get(position).getURL();



        Picasso.with(context)
          .load(image)

          .into(viewholder.imageView_restaurant_icon);

     catch (Exception e) 
        // TODO: handle exception
    

    return v;


public class ViewHolder 
    public TextView textView_main_row_title;
    public TextView textView_main_row_direccion;

    public ImageView imageView_restaurant_icon;

和其他活动使用picaso。

如果(ImagenObj != null)

                            for (int i = 0; i < ImagenObj.length(); i++) 
                                JSONObject c = ImagenObj.getJSONObject(i);

                                // Storing each json item in variable
                                int id = Integer.parseInt( c.getString(ValoresGenerales.TAG_ID));       
                                String nombre = c.getString(ValoresGenerales.TAG_NOMBRE);
                                String url = c.getString(ValoresGenerales.TAG_URL);


                                if(ValoresGenerales.TAG_SECUNDARIA_A.equals(nombre))
                                
                                    url_A = url;
                                
                                else if(ValoresGenerales.TAG_SECUNDARIA_B.equals(nombre))
                                
                                    url_B = url;
                                
                                else    if(ValoresGenerales.TAG_SECUNDARIA_C.equals(nombre))
                                
                                    url_C = url;
                                
                                else    if(ValoresGenerales.TAG_SECUNDARIA_D.equals(nombre))
                                
                                    url_D = url;
                                
                                else    if(ValoresGenerales.TAG_ACERCA_DE.equals(nombre))
                                
                                    url_Acerca_de = url;
                                




                            

                            int currentapiVersion = android.os.Build.VERSION.SDK_INT;
                            if(!url_A.equals(""))
                             
                                Picasso.with(m_context).load(url_A).into(imageViewA);


                            
                            if(!url_B.equals(""))
                            
                                Picasso.with(m_context).load(url_B).into(imageViewB);

                            
                            if(!url_C.equals(""))
                            
                                Picasso.with(m_context).load(url_C).into(imageViewC);

                            
                            if(!url_D.equals(""))
                            
                                Picasso.with(m_context).load(url_D).into(imageViewD);

                            

                            if(!url_Acerca_de.equals(""))
                            

                                Picasso.with(m_context).load(url_Acerca_de).into(iv_acerca_de);


                            
                            


enter code here

这是堆栈跟踪:

05-26 22:57:34.690: E/ActivityThread(22261): Failed to inflate
05-26 22:57:34.690: E/ActivityThread(22261): android.view.InflateException: Binary XML file line #112: Error inflating class <unknown>
05-26 22:57:34.690: E/ActivityThread(22261):    at android.view.LayoutInflater.createView(LayoutInflater.java:613)
05-26 22:57:34.690: E/ActivityThread(22261):    at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
05-26 22:57:34.690: E/ActivityThread(22261):    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660)
05-26 22:57:34.690: E/ActivityThread(22261):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
05-26 22:57:34.690: E/ActivityThread(22261):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
05-26 22:57:34.690: E/ActivityThread(22261):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
05-26 22:57:34.690: E/ActivityThread(22261):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
05-26 22:57:34.690: E/ActivityThread(22261):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
05-26 22:57:34.690: E/ActivityThread(22261):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
05-26 22:57:34.690: E/ActivityThread(22261):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
05-26 22:57:34.690: E/ActivityThread(22261):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
05-26 22:57:34.690: E/ActivityThread(22261):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
05-26 22:57:34.690: E/ActivityThread(22261):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
05-26 22:57:34.690: E/ActivityThread(22261):    at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
05-26 22:57:34.690: E/ActivityThread(22261):    at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
05-26 22:57:34.690: E/ActivityThread(22261):    at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
05-26 22:57:34.690: E/ActivityThread(22261):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:323)
05-26 22:57:34.690: E/ActivityThread(22261):    at android.app.Activity.setContentView(Activity.java:1881)
05-26 22:57:34.690: E/ActivityThread(22261):    at com.example.lookrestaurant.actDetalleRestaurant.onCreate(actDetalleRestaurant.java:94)
05-26 22:57:34.690: E/ActivityThread(22261):    at android.app.Activity.performCreate(Activity.java:5104)
05-26 22:57:34.690: E/ActivityThread(22261):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
05-26 22:57:34.690: E/ActivityThread(22261):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2262)
05-26 22:57:34.690: E/ActivityThread(22261):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2358)
05-26 22:57:34.690: E/ActivityThread(22261):    at android.app.ActivityThread.access$600(ActivityThread.java:153)
05-26 22:57:34.690: E/ActivityThread(22261):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1247)
05-26 22:57:34.690: E/ActivityThread(22261):    at android.os.Handler.dispatchMessage(Handler.java:99)
05-26 22:57:34.690: E/ActivityThread(22261):    at android.os.Looper.loop(Looper.java:137)
05-26 22:57:34.690: E/ActivityThread(22261):    at android.app.ActivityThread.main(ActivityThread.java:5227)
05-26 22:57:34.690: E/ActivityThread(22261):    at java.lang.reflect.Method.invokeNative(Native Method)
05-26 22:57:34.690: E/ActivityThread(22261):    at java.lang.reflect.Method.invoke(Method.java:511)
05-26 22:57:34.690: E/ActivityThread(22261):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
05-26 22:57:34.690: E/ActivityThread(22261):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
05-26 22:57:34.690: E/ActivityThread(22261):    at dalvik.system.NativeStart.main(Native Method)
05-26 22:57:34.690: E/ActivityThread(22261): Caused by: java.lang.reflect.InvocationTargetException
05-26 22:57:34.690: E/ActivityThread(22261):    at java.lang.reflect.Constructor.constructNative(Native Method)
05-26 22:57:34.690: E/ActivityThread(22261):    at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
05-26 22:57:34.690: E/ActivityThread(22261):    at android.view.LayoutInflater.createView(LayoutInflater.java:587)
05-26 22:57:34.690: E/ActivityThread(22261):    ... 32 more
05-26 22:57:34.690: E/ActivityThread(22261): Caused by: java.lang.OutOfMemoryError
05-26 22:57:34.690: E/ActivityThread(22261):    at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
05-26 22:57:34.690: E/ActivityThread(22261):    at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:502)
05-26 22:57:34.690: E/ActivityThread(22261):    at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:355)
05-26 22:57:34.690: E/ActivityThread(22261):    at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:785)
05-26 22:57:34.690: E/ActivityThread(22261):    at android.content.res.Resources.loadDrawable(Resources.java:1992)
05-26 22:57:34.690: E/ActivityThread(22261):    at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
05-26 22:57:34.690: E/ActivityThread(22261):    at android.widget.ImageView.<init>(ImageView.java:120)
05-26 22:57:34.690: E/ActivityThread(22261):    at android.widget.ImageView.<init>(ImageView.java:110)
05-26 22:57:34.690: E/ActivityThread(22261):    ... 35 more
05-26 22:57:34.690: D/AndroidRuntime(22261): Shutting down VM
05-26 22:57:34.690: W/dalvikvm(22261): threadid=1: thread exiting with uncaught exception (group=0x41001930)
05-26 22:57:34.705: E/AndroidRuntime(22261): FATAL EXCEPTION: main
05-26 22:57:34.705: E/AndroidRuntime(22261): java.lang.RuntimeException: Unable to start activity ComponentInfocom.example.lookrestaurant/com.example.lookrestaurant.actDetalleRestaurant: android.view.InflateException: Binary XML file line #112: Error inflating class <unknown>
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2308)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2358)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.app.ActivityThread.access$600(ActivityThread.java:153)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1247)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.os.Handler.dispatchMessage(Handler.java:99)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.os.Looper.loop(Looper.java:137)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.app.ActivityThread.main(ActivityThread.java:5227)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at java.lang.reflect.Method.invokeNative(Native Method)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at java.lang.reflect.Method.invoke(Method.java:511)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at dalvik.system.NativeStart.main(Native Method)
05-26 22:57:34.705: E/AndroidRuntime(22261): Caused by: android.view.InflateException: Binary XML file line #112: Error inflating class <unknown>
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.view.LayoutInflater.createView(LayoutInflater.java:613)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:323)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.app.Activity.setContentView(Activity.java:1881)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at com.example.lookrestaurant.actDetalleRestaurant.onCreate(actDetalleRestaurant.java:94)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.app.Activity.performCreate(Activity.java:5104)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2262)
05-26 22:57:34.705: E/AndroidRuntime(22261):    ... 11 more
05-26 22:57:34.705: E/AndroidRuntime(22261): Caused by: java.lang.reflect.InvocationTargetException
05-26 22:57:34.705: E/AndroidRuntime(22261):    at java.lang.reflect.Constructor.constructNative(Native Method)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.view.LayoutInflater.createView(LayoutInflater.java:587)
05-26 22:57:34.705: E/AndroidRuntime(22261):    ... 32 more
05-26 22:57:34.705: E/AndroidRuntime(22261): Caused by: java.lang.OutOfMemoryError
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:502)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:355)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:785)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.content.res.Resources.loadDrawable(Resources.java:1992)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.widget.ImageView.<init>(ImageView.java:120)
05-26 22:57:34.705: E/AndroidRuntime(22261):    at android.widget.ImageView.<init>(ImageView.java:110)
05-26 22:57:34.705: E/AndroidRuntime(22261):    ... 35 more
05-26 22:57:35.605: D/dalvikvm(22261): GC_FOR_ALLOC freed 1282K, 25% free 29998K/39940K, paused 22ms, total 25ms
05-26 22:57:36.485: D/dalvikvm(22261): GC_CONCURRENT freed 1883K, 25% free 30130K/39940K, paused 1ms+6ms, total 32ms

【问题讨论】:

请发布堆栈跟踪。 【参考方案1】:

您遇到的问题是由于您尝试操作的Bitmaps 的大小,手机内存不足Bitmap。确保您使用的分辨率有意义。

有很多不错的异步图片下载库可用。我可以建议Picasso。它甚至还有帮助您轻松调整图像大小的方法。

【讨论】:

谢谢,我会试试看.. 有什么方法可以从代码中控制图像的大小吗?和一个细胞星系 s3 .. 尺寸/重量是否正确? 你可以,毕加索让这一切变得容易。 非常感谢 .. 但是尝试 picasso 加载库 .. 一切都很好 .. 但是继续使用该应用程序给了我以下错误原因:android.graphics 上的 java.lang.OutOfMemoryError。 BitmapFactory.nativeDecodeStream(Native Method) Picasso .. 代码相当精简。我使用 Picasso.with(context) .load(image) .resize(50, 50) .centerCrop() .into(viewholder.imageView_restaurant_icon); 确保你的代码中没有其他部分像以前一样在操纵Bitmaps。上面注释中显示的代码应避免使用OutOfMemoryException

以上是关于错误原因:java.lang.OutOfMemoryError 加载图像的主要内容,如果未能解决你的问题,请参考以下文章

出现ORA-16191错误的原因都有哪些?

常见Socket连接错误及原因都有哪些?

Xilinx ISE 13.1综合提示错误啥原因?

在MYSQL里 段错误 是啥原因

Excel中出现公式常见显示错误原因与解决方法

500错误原因解决方法