2016-05-09 84 views
-2

嗨,我相對較新的android開發。我使用RecyclerView和Picasso創建了一個rss feed。在我的舊LG20設備上,該應用運行平穩無誤,但在較新的設備上出現內存錯誤,應用在啓動時崩潰,任何人都可以幫忙。Android Studio內存錯誤,java.lang.OutOfMemoryError

E/AndroidRuntime: FATAL EXCEPTION: main 
Process: uk.co.molar.hqstu, PID: 26793 
java.lang.OutOfMemoryError: Failed to allocate a 64000012 byte allocation with 4194304 free bytes and 45MB until OOM 
                        at dalvik.system.VMRuntime.newNonMovableArray(Native Method) 
    at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) 
    at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:609) 
    at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:444) 
    at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:1080) 
    at android.content.res.Resources.loadDrawableForCookie(Resources.java:2635) 
    at android.content.res.Resources.loadDrawable(Resources.java:2540) 
    at android.content.res.TypedArray.getDrawable(TypedArray.java:870) 
    at android.widget.ImageView.<init>(ImageView.java:152) 
    at android.widget.ImageView.<init>(ImageView.java:140) 
    at android.support.v7.widget.AppCompatImageView.<init>(AppCompatImageView.java:57) 
    at android.support.v7.widget.AppCompatImageView.<init>(AppCompatImageView.java:53) 
    at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:106) 
    at android.support.v7.app.AppCompatDelegateImplV7.createView(AppCompatDelegateImplV7.java:963) 
    at android.support.v7.app.AppCompatDelegateImplV7.onCreateView(AppCompatDelegateImplV7.java:1022) 
    at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:746) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:835) 
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:838) 
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:515) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
    at uk.co.molar.hqstu.MyAdapter.onCreateViewHolder(MyAdapter.java:39) 
    at uk.co.molar.hqstu.MyAdapter.onCreateViewHolder(MyAdapter.java:23) 
    at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:5476) 
    at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4701) 
    at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4611) 
    at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1988) 
    at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1384) 
    at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1347) 
    at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:574) 
    at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3026) 
    at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2903) 
    at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3277) 
    at android.view.View.layout(View.java:16630) 
    at android.view.ViewGroup.layout(ViewGroup.java:5437) 
    at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1079) 
    at android.view.View.layout(View.java:16630) 
    at android.view.ViewGroup.layout(ViewGroup.java:5437) 
    at android.support.design.widget.HeaderScrollingViewBehavior.layoutChild(HeaderScrollingViewBehavior.java:122) 
    at android.support.design.widget.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:42) 
    at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:1139) 
    at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:810) 
    at android.view.View.layout(View.java:16630) 
    at android.view.ViewGroup.layout(ViewGroup.java:5437) 
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336) 
    at android.widget.FrameLayout.onLayout(FrameLayout.java:273) 
    at android.view.View.layout(View.java:16630) 
    android.view.ViewGroup.layout(ViewGroup.java 
+2

'無法分配一個64000012'嚴重的是,爲什麼你要加載4000x4000圖像? ...也是一個錯誤不是來自piccaso代碼,而是來自'ImageView'構造函數 - 所以它是你在佈局文件中設置的資源(使用'android:src') – Selvin

+0

該死的,所以它的東西很愚蠢,我沒有意識到,謝謝你隊友 – Abdul1924

+0

https://stackoverflow.com/questions/37098783/app-slow-only-on-samsung-galaxy-s7-edge-with-outofmemoryexception/37099345#37099345 – CommonsWare

回答

0

嘗試將此

dexOptions { 
      incremental true 
      javaMaxHeapSize "4g" 
} 

添加到文件的build.gradle在android關閉。