Turkcell | Geleceği Yazanlar

Soru & Cevap

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

04.10.2020 - 23: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)

 

 

245 Görüntülenme

3 Cevap

Hasan Küçük
06.10.2020 - 15: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.

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Ömer Çağlar
06.10.2020 - 23: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
Nihat Yalvaç
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;

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Ömer Çağlar
06.10.2020 - 23: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.
Nihat Yalvaç
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);

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

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