Soru & Cevap

Emülatörde çalışan uygulama telefonda hata veriyor

04.10.2020 - 11:25

Emulatörde çalışan uyulamayı telefonda çalıştırmaya çalıştığımda uyulama kapanıyor. Hata veren satırı da gösteriyor ancak orda bir hata öremiyorum dediğim gibi emulatorde sorunsuzca çalışıyor. Aşağıda kodları ekliyorum yardımcı olursanız seinirim. Şimdiden teşekkür ederim.

 

FirestoreAdapter.java kodlar aşağıda ekran alıntısı şeklindedir.

Şu satırda hata veriyor:  
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item, parent, false);

 

Logcat çıktısı:

2020-10-04 19:54:43.508 28178-28178/com.studio.studioE/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.studio.studio, PID: 28178
    java.lang.OutOfMemoryError: Failed to allocate a 277358412 byte allocation with 4950632 free bytes and 184MB until OOM
        at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
        at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
        at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:620)
        at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:455)
        at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:1152)
        at android.content.res.ResourcesImpl.loadDrawableForCookie(ResourcesImpl.java:729)
        at android.content.res.ResourcesImpl.loadDrawable(ResourcesImpl.java:580)
        at android.content.res.Resources.loadDrawable(Resources.java:854)
        at android.content.res.TypedArray.getDrawable(TypedArray.java:928)
        at android.view.View.<init>(View.java:4174)
        at android.widget.ImageView.<init>(ImageView.java:150)
        at android.widget.ImageView.<init>(ImageView.java:145)
        at androidx.appcompat.widget.AppCompatImageView.<init>(AppCompatImageView.java:72)
        at androidx.appcompat.widget.AppCompatImageView.<init>(AppCompatImageView.java:68)
        at androidx.appcompat.app.AppCompatViewInflater.createImageView(AppCompatViewInflater.java:187)
        at androidx.appcompat.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:107)
        at androidx.appcompat.app.AppCompatDelegateImpl.createView(AppCompatDelegateImpl.java:1407)
        at androidx.appcompat.app.AppCompatDelegateImpl.onCreateView(AppCompatDelegateImpl.java:1457)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:769)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:858)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:861)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:518)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:426)
        at com.studio.studio.FirestoreAdapter.onCreateViewHolder(FirestoreAdapter.java:59)
        at com.studio.studio.FirestoreAdapter.onCreateViewHolder(FirestoreAdapter.java:24)
        at androidx.recyclerview.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:7078)
        at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6235)
        at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6118)
        at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6114)
        at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2303)
        at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1627)
        at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1587)
        at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:665)
        at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4134)
        at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3851)
        at androidx.recyclerview.widget.RecyclerView.consumePendingUpdateOperations(RecyclerView.java:1897)
        at androidx.recyclerview.widget.RecyclerView$1.run(RecyclerView.java:414)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:871)
        at android.view.Choreographer.doCallbacks(Choreographer.java:683)
        at android.view.Choreographer.doFrame(Choreographer.java:616)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:857)
        at android.os.Handler.handleCallback(Handler.java:751)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6077)
        at java.lang.reflect.Method.invoke(Native Method)
2020-10-04 19:54:43.508 28178-28178/com.studio.studioE/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

 

 

1 Görüntülenme

3 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-17361-1601989051.png
hasankucuk
06.10.2020 - 03:52

Merhaba, AppCompatImageView üzerinde bir bellek taşması mevcut. Glide gibi toollar vasıtasıyla görselleri ekranda görüntülemeye uğraşıyorsanız burada Glide maximum 5000x5000 çözünürlükte görselleri görüntüleyebiliyor. Dolayısıyla burada görsellerinizin çözünürlük ve boyut değerleri yüksek olabileceği gibi localden drawable üzerinden ilerliyorsanız yine bu minvalde OutOfMemory ile karşılaşıyorsunuz. Burada testi hızlandırmak için AppCompatImageView üzerine görseli set ettiğiniz kodu comment line alıp daha sonrasında çalıştırdığınızda OutOfMemory gelmeyecektir. Odak noktanızı buraya çevirip sorunu çözeceğinizi düşünüyorum. İyi çalışmalar.

beyazbirgolge51
06.10.2020 - 11:15
Aynen dediğiniz şekilde görselden kaynaklı bir hataymış görsel gereksizdi zaten kaldırdım onu ve sorun düzeldi. Çok teşekkür ederim yorumunuz için
Profile picture for user .tire.
.tire.
05.10.2020 - 12:34
Context önce bir değişkene ataman lazım referans göstermen için ben yukarıda göremedim public class ImageAdapter extends RecyclerView.Adapter { private Context mContext;
beyazbirgolge51
06.10.2020 - 11:18
Onu da denedim ancak sorun farklıymiş drawable dosyasına eklediğim bir görselden kaynaklanıyormus. Onu kaldırınca sorun giderildi. Tesekkur ederim.
Profile picture for user .tire.
.tire.
05.10.2020 - 12:33
@Override public ImageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View v = LayoutInflater.from(mContext).inflate(R.layout.image_item, parent, false); return new ImageViewHolder(v);