本文介绍了获取此异常迫使Android应用程序崩溃的开始的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


11-23 10:38:04.430 2095-2095/? I/art: Not late-enabling -Xcheck:jni (already on)
11-23 10:38:04.430 2095-2095/? I/art: Late-enabling JIT
11-23 10:38:04.433 2095-2095/? I/art: JIT created with code_cache_capacity=2MB compile_threshold=1000
11-23 10:38:04.830 2095-2095/com.example.somanshusrivastava.carpiko W/System: ClassLoader referenced unknown path: /data/app/com.example.somanshusrivastava.carpiko-2/lib/x86
11-23 10:38:05.697 2095-2106/com.example.somanshusrivastava.carpiko I/art: Background partial concurrent mark sweep GC freed 96(3KB) AllocSpace objects, 0(0B) LOS objects, 7% free, 50MB/54MB, paused 2.581ms total 140.616ms
11-23 10:38:05.812 2095-2095/com.example.somanshusrivastava.carpiko I/art: Starting a blocking GC Alloc
11-23 10:38:05.812 2095-2095/com.example.somanshusrivastava.carpiko I/art: Starting a blocking GC Alloc
11-23 10:38:05.827 2095-2095/com.example.somanshusrivastava.carpiko I/art: Alloc sticky concurrent mark sweep GC freed 79(11KB) AllocSpace objects, 0(0B) LOS objects, 7% free, 50MB/54MB, paused 5.901ms total 13.614ms
11-23 10:38:05.836 2095-2095/com.example.somanshusrivastava.carpiko I/art: Starting a blocking GC Alloc
11-23 10:38:05.850 2095-2095/com.example.somanshusrivastava.carpiko I/art: Alloc partial concurrent mark sweep GC freed 23(1008B) AllocSpace objects, 0(0B) LOS objects, 7% free, 50MB/54MB, paused 2.153ms total 10.247ms
11-23 10:38:05.853 2095-2095/com.example.somanshusrivastava.carpiko I/art: Starting a blocking GC Alloc
11-23 10:38:05.867 2095-2095/com.example.somanshusrivastava.carpiko I/art: Alloc concurrent mark sweep GC freed 15(12KB) AllocSpace objects, 0(0B) LOS objects, 7% free, 50MB/54MB, paused 1.431ms total 13.789ms
11-23 10:38:05.868 2095-2095/com.example.somanshusrivastava.carpiko I/art: Forcing collection of SoftReferences for 49MB allocation
11-23 10:38:05.869 2095-2095/com.example.somanshusrivastava.carpiko I/art: Starting a blocking GC Alloc
11-23 10:38:05.881 2095-2095/com.example.somanshusrivastava.carpiko I/art: Alloc concurrent mark sweep GC freed 11(344B) AllocSpace objects, 0(0B) LOS objects, 7% free, 50MB/54MB, paused 1.407ms total 11.758ms
11-23 10:38:05.882 2095-2095/com.example.somanshusrivastava.carpiko W/art: Throwing OutOfMemoryError "Failed to allocate a 51750048 byte allocation with 4194304 free bytes and 13MB until OOM"
11-23 10:38:05.882 2095-2095/com.example.somanshusrivastava.carpiko I/art: Starting a blocking GC Alloc
11-23 10:38:05.882 2095-2095/com.example.somanshusrivastava.carpiko I/art: Starting a blocking GC Alloc
11-23 10:38:05.892 2095-2095/com.example.somanshusrivastava.carpiko I/art: Alloc sticky concurrent mark sweep GC freed 3(608B) AllocSpace objects, 0(0B) LOS objects, 7% free, 50MB/54MB, paused 1.389ms total 8.964ms
11-23 10:38:05.894 2095-2095/com.example.somanshusrivastava.carpiko I/art: Starting a blocking GC Alloc
11-23 10:38:05.903 2095-2095/com.example.somanshusrivastava.carpiko I/art: Alloc partial concurrent mark sweep GC freed 6(192B) AllocSpace objects, 0(0B) LOS objects, 7% free, 50MB/54MB, paused 1.387ms total 8.867ms
11-23 10:38:05.904 2095-2095/com.example.somanshusrivastava.carpiko I/art: Starting a blocking GC Alloc
11-23 10:38:05.916 2095-2095/com.example.somanshusrivastava.carpiko I/art: Alloc concurrent mark sweep GC freed 3(96B) AllocSpace objects, 0(0B) LOS objects, 7% free, 50MB/54MB, paused 1.416ms total 10.922ms
11-23 10:38:05.917 2095-2095/com.example.somanshusrivastava.carpiko I/art: Forcing collection of SoftReferences for 49MB allocation
11-23 10:38:05.917 2095-2095/com.example.somanshusrivastava.carpiko I/art: Starting a blocking GC Alloc
11-23 10:38:05.928 2095-2095/com.example.somanshusrivastava.carpiko I/art: Alloc concurrent mark sweep GC freed 3(96B) AllocSpace objects, 0(0B) LOS objects, 7% free, 50MB/54MB, paused 1.350ms total 10.018ms
11-23 10:38:05.929 2095-2095/com.example.somanshusrivastava.carpiko W/art: Throwing OutOfMemoryError "Failed to allocate a 51750048 byte allocation with 4194304 free bytes and 13MB until OOM"
11-23 10:38:05.929 2095-2095/com.example.somanshusrivastava.carpiko D/skia: --- allocation failed for scaled bitmap
11-23 10:38:05.930 2095-2095/com.example.somanshusrivastava.carpiko D/AndroidRuntime: Shutting down VM
11-23 10:38:05.930 2095-2095/com.example.somanshusrivastava.carpiko E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                      Process: com.example.somanshusrivastava.carpiko, PID: 2095
                                                                                      java.lang.OutOfMemoryError: Failed to allocate a 51750048 byte allocation with 4194304 free bytes and 13MB 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.(ImageView.java:152)
                                                                                          at android.widget.ImageView.(ImageView.java:140)
                                                                                          at android.support.v7.widget.AppCompatImageView.(AppCompatImageView.java:58)
                                                                                          at android.support.v7.widget.AppCompatImageView.(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: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.parseInclude(LayoutInflater.java:971)
                                                                                          at android.view.LayoutInflater.rInflate(LayoutInflater.java:831)
                                                                                          at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
                                                                                          at android.view.LayoutInflater.parseInclude(LayoutInflater.java:971)
                                                                                          at android.view.LayoutInflater.rInflate(LayoutInflater.java:831)
                                                                                          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 android.view.LayoutInflater.inflate(LayoutInflater.java:374)
                                                                                          at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:256)
                                                                                          at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109)
                                                                                          at com.example.somanshusrivastava.carpiko.MainActivity.onCreate(MainActivity.java:24)
                                                                                          at android.app.Activity.performCreate(Activity.java:6237)
                                                                                          at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
                                                                                          at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
                                                                                          at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
                                                                                          at android.app.ActivityThread.-wrap11(ActivityThread.java)
                                                                                          at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
                                                                                          at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                          at android.os.Looper.loop(Looper.java:148)
                                                                                          at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                                                          at java.lang.reflect.Method.invoke(Native Method)
                                                                                          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
11-23 10:38:07.560 2095-2102/com.example.somanshusrivastava.carpiko W/art: Suspending all threads took: 13.233ms
11-23 10:38:09.537 2095-2102/com.example.somanshusrivastava.carpiko W/art: Suspending all threads took: 9.664ms
11-23 10:38:11.140 2095-2095/? I/Process: Sending signal. PID: 2095 SIG: 9

每当我尝试运行 AVD ,我的应用程序意外关闭,这是我得到的错误。这是所生成的logcat的。它被示出FatalException和MemoryException。它是一个AVD错误或code错误?请帮助。

Whenever I try to run the AVD, my app unexpectedly closes and this is the error I get. This is the logcat that is generated. It is showing a FatalException and a MemoryException. Is it an AVD error or code error? Please help.

推荐答案

您需要了解位图和内存的概念

You need to understand the concept of Bitmap and memory

假设你希望显示在屏幕上的图像,你只需带着您的相机。为此,必需的总存储器的计算用下面的公式:memory_needed_in_bytes = 4 * IMAGE_WIDTH * IMAGE_HEIGHT;

4,为什么?那么,最常见/推荐位的配置是ARGB_8888。这意味着,对于我们绘制每个像素,我们需要保持在Alpha 8位(1字节),红,贪婪和内存中的蓝色通道,以便正确地显示。有替代品,像RGB_565配置要求比ARGB_8888一半的内存,但失去的透明度和颜色precision(同时可能增加一个绿色色调)。

Why 4? Well, the most common / recommended bitmap configuration is ARGB_8888. That means that for each pixel we draw, we need to keep 8 bits (1 byte) for the alpha, the red, the greed and the blue channel in memory, in order to properly display it. There are alternatives, like the RGB_565 configuration that requires half the memory than ARGB_8888, but loses the transparency and the color precision (while maybe adding a green tint).

让我们假设你有全高清屏幕,12万像素摄像头一个全新的设备。刚刚拍摄的图片至4000x3000像素的大,以显示它所需的总内存:4个字节* 4000 * 3000 = 48 MB

Let’s assume you have a brand new device with full HD screen and 12 MP camera. The picture you just took is 4000x3000 pixels large and the total memory needed to display it is: 4 bytes * 4000 * 3000 = 48 MB

48兆您的RAM的只是一个单一的形象!?这是一个很大!

48 megabytes of your RAM just for a single image!? That’s a lot!

现在,让我们把屏幕分辨率考虑。您正在试图表明,具有1920×1080像素,在最坏的情况下屏幕上的图像至4000x3000(显示图像全屏幕),你不应该分配超过4×1920×1080 = 8.3 MB的内存。

Now let’s take the screen resolution into consideration. You are trying to show a 4000x3000 image on a screen that has 1920x1080 pixels, in worst case scenario (displaying the image full screen) you shouldn’t allocate more than 4 * 1920 * 1080 = 8.3 MB of memory.

始终遵循了Android编程技巧有效地显示位图:

Always follow the Android programming tips for displaying bitmaps efficiently:

测量你显示你的图像视图。
  缩放/裁剪相应的大图片。
  只显示可显示的内容。

Measure the view you’re showing your images in. Scale / crop the large image accordingly. Show only what can be displayed.

这篇关于获取此异常迫使Android应用程序崩溃的开始的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-04 00:52
查看更多