java.lang.OutOfMemoryError:在OOM之前分配分配失败

Nat*_*usf 2 java android image

实际上,我正在尝试创建一个包含n个多媒体文件的应用程序,其中包括图像和视频.我的应用规模大约是34MB,我的资产规模大约是60mb.当我在正常设备上加载应用程序时,我们没有遇到任何问题,但是具有2K resolutions诸如此类的设备Nexus 6P, HTC, LG,应用程序在进程中间因"内存不足"错误而崩溃.我用这个产生了错误报告.我也尝试过bitmap factory.同时我在数组方法中使用视频.

有人可以帮忙解决这个问题吗?

致命异常:主程序:com.example.we.appname,PID:9353

java.lang.OutOfMemoryError:无法在android.graphics上的android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)的dalvik.system.VMRuntime.newNonMovableArray(Native Method)中分配带有1243880个空闲字节和1214KB的1660396字节分配. android.graphtent.decodeStream(BitmapFactory.java:620)位于android.content.res.ResourcesImpl的android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:455)android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:1155) .loadDrawableForCookie(ResourcesImpl.java:720)在android.content.res上的android.content.res.ResourcesImpl.loadDrawable(ResourcesImpl.java:571)android.content.res.Resources.loadDrawable(Resources.java:858).在android.graphics.drawable上的android.graphics.drawable.AnimationDrawable.Arfable(可动画衍生事件中,动画可伸缩. .DrawableInflater.inflat android.content.res.ResourcesImpl上android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:1227)的android.graphics.drawable.Drawable.createFromXml(Drawable.java:1200)中的eFromXml(DrawableInflater.java:130) .loadDrawableForCookie(ResourcesImpl.java:715)位于android.content.res.Resources上的android.content.res.ResourcesImpl.loadDrawable(ResourcesImpl.java:571)android.content.Context的android.content.res.Resources.getDrawable(Resources.java:771). android.app.Activity.performCreate的com.example.kq.meettheshps.Score_Card.onCreate(Score_Card.java:58)上的android.view.View.setBackgroundResource(View.java:18228)中的getDrawable(Context.java:525) (Activity.java:6679)在Android.app.ActivityThread.perleLaunchActivity(ActivityThread.java:2618)的android.app.Instrumentation.callActivityCnate(Instrumentation.java:1118)android.app.ActivityThread.handleLaunchActivity(ActivityThread.java: 2726)android.app.ActivityThread.-wrap12(ActivityThread.java)在android.app.ActivityThread $ H.handleMessage(ActivityT)hread.java:1477)android.app.Handler.dispatchMessage(Handler.java:102)android.app.Looper.loop(Looper.java:154)android.app.ActivityThread.main(ActivityThread.java:6119) )at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:886)的com.android.internal.os.ZygoteInit.main(ZygoteInit)中的java.lang.reflect.Method.invoke(Native Method)的.java:776)

Nar*_*iya 9

我找到的简单解决方案是Add hardwareAccelerated&largeHeapunderapplication AndroidManifest.xml

<application
     android:allowBackup="true"
     android:hardwareAccelerated="false"
     android:icon="@mipmap/ic_launcher"
     android:label="@string/app_name"
     android:largeHeap="true"
     android:supportsRtl="true"
     android:theme="@style/AppTheme">
Run Code Online (Sandbox Code Playgroud)

  • 为什么 hardwareAccelerated 应该为 false? (2认同)