2015-12-23 3 views
-1
E/AndroidRuntime: FATAL EXCEPTION: main 
java.lang.OutOfMemoryError 
at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) 
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:502) 
at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:355) 
at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:785) 
at android.content.res.Resources.loadDrawable(Resources.java:1965) 
at android.content.res.TypedArray.getDrawable(TypedArray.java:601) 
at android.widget.ImageView.<init>(ImageView.java:120) 
at android.support.v7.widget.AppCompatImageView.<init>(AppCompatImageView.java:58) 
at android.support.v7.widget.AppCompatImageView.<init>(AppCompatImageView.java:54) 
at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:95) 
at android.support.v7.app.AppCompatDelegateImplV7.createView(AppCompatDelegateImplV7.java:938) 
at android.support.v7.app.AppCompatDelegateImplV7.onCreateView(AppCompatDelegateImplV7.java:992) 
at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:675) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:749) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
at gonepalguide.igctech.app.FragmentHotel.adapter.EntryHotelAdapter.getView(EntryHotelAdapter.java:96) 
at android.widget.HeaderViewListAdapter.getView(HeaderViewListAdapter.java:220) 
at android.widget.AbsListView.obtainView(AbsListView.java:2159) 
at android.widget.ListView.makeAndAddView(ListView.java:1831) 
at android.widget.ListView.fillDown(ListView.java:674) 
at android.widget.ListView.fillFromTop(ListView.java:735) 
at android.widget.ListView.layoutChildren(ListView.java:1638) 
at android.widget.AbsListView.onLayout(AbsListView.java:1994) 
at android.view.View.layout(View.java:14008) 
at android.view.ViewGroup.layout(ViewGroup.java:4373) 
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1663) 
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1521) 
at android.widget.LinearLayout.onLayout(LinearLayout.java:1434) 
at android.view.View.layout(View.java:14008) 
at android.view.ViewGroup.layout(ViewGroup.java:4373) 
at android.widget.FrameLayout.onLayout(FrameLayout.java:448) 
at android.view.View.layout(View.java:14008) 
at android.view.ViewGroup.layout(ViewGroup.java:4373) 
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1663) 
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1521) 
at android.widget.LinearLayout.onLayout(LinearLayout.java:1434) 
at android.view.View.layout(View.java:14008) 
at android.view.ViewGroup.layout(ViewGroup.java:4373) 
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1663) 
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1521) 
at android.widget.LinearLayout.onLayout(LinearLayout.java:1434) 
at android.view.View.layout(View.java:14008) 
at android.view.ViewGroup.layout(ViewGroup.java:4373) 
at android.widget.FrameLayout.onLayout(FrameLayout.java:448) 
at android.view.View.layout(View.java:14008) 
at android.view.ViewGroup.layout(ViewGroup.java:4373) 
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1663) 
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1521) 
at android.widget.LinearLayout.onLayout(LinearLayout.java:1434) 
at android.view.View.layout(View.java:14008) 
at android.view.ViewGroup.layout(ViewGroup.java:4373) 
at android.widget.FrameLayout.onLayout(FrameLayout.java:448) 
at android.view.View.layout(View.java:14008) 
at android.view.ViewGroup.layout(ViewGroup.java:4373) 
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1663) 
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1521) 
at android.widget.LinearLayout.onLayout(LinearLayout.java:1434) 
at android.view.View.layout(View. 
+0

http://stackoverflow.com/questions/11820266/android-bitmapfactory-decodestream-out-of-memory-with-a-400kb-file-with-2mb-f – krshmbb

+0

@Prakash: Пожалуйста, добавьте код и более подробно о том, где вы получаете эту ошибку. !! – AndiGeeky

ответ

0

Вы перерабатываете объект Bitmap.

Bitmap bm = BitmapFactory.decodeFile(strPath); 
imageView.setImageBitmap(bm); 

И утилизируйте, используя следующий код.

if(bm!=null){ 
    bm.recycle(); 
    bm=null; 
} 

Или используйте следующий код в теге приложения манифеста.

android:largeHeap="true" 
0

java.lang.OutOfMemoryError

Похоже, что ваш образ слишком большой. Увеличьте свое изображение перед тем, как перейти к другому действию.

Bitmap a = (BitmapFactory.decodeFile(picturePath)); 
    photo = scaleBitmap(a, 200, 150); 
    imageView.setImageBitmap(photo); 


public Bitmap scaleBitmap(Bitmap bitmap,int newWidth,int newHeight) { 
     Bitmap scaledBitmap = Bitmap.createBitmap(newWidth, newHeight, Config.ARGB_8888); 

     float ratioX = newWidth/(float) bitmap.getWidth(); 
     float ratioY = newHeight/(float) bitmap.getHeight(); 
     float middleX = newWidth/2.0f; 
     float middleY = newHeight/2.0f; 

     Matrix scaleMatrix = new Matrix(); 
     scaleMatrix.setScale(ratioX, ratioY, middleX, middleY); 

     Canvas canvas = new Canvas(scaledBitmap); 
     canvas.setMatrix(scaleMatrix); 
     canvas.drawBitmap(bitmap, middleX - bitmap.getWidth()/2, middleY - bitmap.getHeight()/2, new Paint(Paint.FILTER_BITMAP_FLAG)); 

     return scaledBitmap; 

    }