【问题标题】:App RunTime Crash - Unfortunately Stopped应用程序运行时崩溃 - 不幸停止
【发布时间】:2018-04-13 18:54:17
【问题描述】:

我的 MainScreen 包含 4 个 ImageView,每个 ImageView 都会将用户发送到类别活动,然后发送额外数据以在 ListView 中显示内容,但是一旦我单击任何 ImageView,应用程序就会停止工作,并在日志猫。 有谁知道这是什么意思?

块引用 04-13 21:43:53.337 15929-15929/com.ibuilder.the50recipes E/AndroidRuntime: 致命异常: main 进程:com.ibuilder.the50recipes,PID:15929 java.lang.OutOfMemoryError:无法分配 25600012 字节分配,其中 9652808 字节和 9MB 直到 OOM 在 dalvik.system.VMRuntime.newNonMovableArray(本机方法) 在 android.graphics.BitmapFactory.nativeDecodeAsset(本机方法) 在 android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:620) 在 android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:455) 在 android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:1152) 在 android.content.res.ResourcesImpl.loadDrawableForCookie(ResourcesImpl.java:855) 在 android.content.res.ResourcesImpl.loadDrawable(ResourcesImpl.java:706) 在 android.content.res.Resources.getDrawable(Resources.java:776) 在 android.content.Context.getDrawable(Context.java:530) 在 android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:351) 在 android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:200) 在 android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:188) 在 android.support.v7.content.res.AppCompatResources.getDrawable(AppCompatResources.java:100) 在 android.support.v7.widget.AppCompatImageHelper.setImageResource(AppCompatImageHelper.java:85) 在 android.support.v7.widget.AppCompatImageView.setImageResource(AppCompatImageView.java:94) 在 com.ibuilder.the50recipes.Category_New$CustomAdapter.getView(Category_New.java:659) 在 android.widget.AbsListView.obtainView(AbsListView.java:2406) 在 android.widget.ListView.makeAndAddView(ListView.java:1975) 在 android.widget.ListView.fillDown(ListView.java:709) 在 android.widget.ListView.fillFromTop(ListView.java:770) 在 android.widget.ListView.layoutChildren(ListView.java:1749) 在 android.widget.AbsListView.onLayout(AbsListView.java:2205) 在 android.view.View.layout(View.java:17564) 在 android.view.ViewGroup.layout(ViewGroup.java:5654) 在 android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741) 在 android.widget.LinearLayout.layoutHorizo​​ntal(LinearLayout.java:1730) 在 android.widget.LinearLayout.onLayout(LinearLayout.java:1496) 在 android.view.View.layout(View.java:17564) 在 android.view.ViewGroup.layout(ViewGroup.java:5654) 在 android.widget.RelativeLayout.onLayout(RelativeLayout.java:1079) 在 android.view.View.layout(View.java:17564) 在 android.view.ViewGroup.layout(ViewGroup.java:5654) 在 android.widget.FrameLayout.layoutChildren(FrameLayout.java:323) 在 android.widget.FrameLayout.onLayout(FrameLayout.java:261) 在 android.view.View.layout(View.java:17564) 在 android.view.ViewGroup.layout(ViewGroup.java:5654) 在 android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741) 在 android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585) 在 android.widget.LinearLayout.onLayout(LinearLayout.java:1494) 在 android.view.View.layout(View.java:17564) 在 android.view.ViewGroup.layout(ViewGroup.java:5654) 在 android.widget.FrameLayout.layoutChildren(FrameLayout.java:323) 在 android.widget.FrameLayout.onLayout(FrameLayout.java:261) 在 android.view.View.layout(View.java:17564) 在 android.view.ViewGroup.layout(ViewGroup.java:5654) 在 android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741) 在 android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585) 在 android.widget.LinearLayout.onLayout(LinearLayout.java:1494) 在 android.view.View.layout(View.java:17564) 在 android.view.ViewGroup.layout(ViewGroup.java:5654) 在 android.widget.FrameLayout.layoutChildren(FrameLayout.java:323) 在 android.widget.FrameLayout.onLayout(FrameLayout.java:261) 在 com.android.internal.policy.DecorView.onLayout(DecorView.java:725) 在 android.view.View.layout(View.java:17564) 在 android.view.ViewGroup.layout(ViewGroup.java:5654) 在 android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2406) 在 android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2126) 04-13 21:43:53.337 15929-15929/com.ibuilder.the50recipes E/AndroidRuntime: 在 android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1286) 在 android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6536) 在 android.view.Choreographer$CallbackRecord.run(Choreographer.java:871) 在 android.view.Choreographer.doCallbacks(Choreographer.java:683) 在 android.view.Choreographer.doFrame(Choreographer.java:619) 在 android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:857) 在 android.os.Handler.handleCallback(Handler.java:751) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:154) 在 android.app.ActivityThread.main(ActivityThread.java:6247) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:872) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)

【问题讨论】:

    标签: java debugging crash runtime logcat


    【解决方案1】:

    看起来它正在尝试分配 25 mb 的内存,但它只有 9 mb 的内存,直到内存不足。

    您可能需要了解如何更有效地加载大型位图:

    https://developer.android.com/topic/performance/graphics/load-bitmap.html

    从那里它说明了如何有效地加载资源:

    public static Bitmap decodeSampledBitmapFromResource(Resources res, int resId,
            int reqWidth, int reqHeight) {
    
        // First decode with inJustDecodeBounds=true to check dimensions
        final BitmapFactory.Options options = new BitmapFactory.Options();
        options.inJustDecodeBounds = true;
        BitmapFactory.decodeResource(res, resId, options);
    
        // Calculate inSampleSize
        options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);
    
        // Decode bitmap with inSampleSize set
        options.inJustDecodeBounds = false;
        return BitmapFactory.decodeResource(res, resId, options);
    }
    

    【讨论】:

      【解决方案2】:

      尝试使用https://tinypng.com/ 优化您的图像。您的图片资源太大。

      【讨论】:

        猜你喜欢
        • 2015-03-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-19
        • 1970-01-01
        • 2015-06-20
        相关资源
        最近更新 更多