java.lang.outofmemoryerror:无法分配分配,直到OOM为止



实际上,我正在尝试创建一个带有n个数字文件的应用程序,其中包括图像和视频。我的应用程序大小约为34MB,我的资产大小约为60mb。当我将应用程序加载到普通设备中时,我们没有遇到任何问题,但是具有2K resolutions(例如Nexus 6P, HTC, LG等)的设备,这些应用程序在过程的中间崩溃了,而错误"。我已经制作了错误报告。我也尝试过刻图工厂。同时,我正在使用阵列方法中的视频。

任何人可以帮助解决这个问题吗?

致命例外:主要过程:com.example.we.appname,pid:9353

。Res.Res.Res.ResrcesImpl.loadDrawableForforCookie(Resources Imimpl.java:720)at android.content.res.res.res.res.resimpl.loaddrawable(ResourcesImimpl.java:571)at android.content.res.res.res.res.res.res.res.res.res.res.res.res.res.res.res.res.resources.resources.roaddable(resources.java:858).res.typedarray.getDrawable(typedarray.java:928)at android.graphics.graphics.drawable.animation.animationdrawable.inflatechildelements(androdable.java:327)at android.graphics.graphics.graphics.graphics.grableable.animation.animation.animation.inimation.inflate.inflate.inflate.inflate.inflate.inflate.inflate.inflatable.java:297 at andRod.Java at andRoid。at。。android.view.view.view.setbackgroundResource(view.java:18228)android.content.Context.getDrawable(context.java:525)at com.example.kq.meettheshps.meettheshps.score_core_card.card.oncreat.oncreate(score_card.java:58)handlelaunchactivity(ActivityThread.java:2726)at android.App.activityThread.-Wrap12(ActivityThread.java)at android.handlemessage(ActivityThread.java:1477)at android.os.os.os.os.os.handler.dispatchmessage(androidthread $ h.handlemessage(activeThread.java:1477)java:102)at android.os.looper.loop(looper.java:154)at android.app.act.activitythreadthread.main(activitythread.java:6119)ainjava.lang.reflect.reflect.reflect.method.method.invoke(Method.invoke(Matitalod.invoke)。

我发现的简单解决方案,添加hardwareAccelerated& largeHeap application 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">

处理Bitmap时,这是一个常见的错误,因此在AndroidManifest.xml中添加此行: android:largeHeap="true"

 <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:largeHeap="true"
        android:hardwareAccelerated="false"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme.NoActionBar">

希望它会有所帮助。

听起来您要么在RAM中缓存太多文件,要么一遍又一遍地实例化相同的位图和视频,直到您用完存储器。

除非您有异常要求,否则您不应在2016年在Android上编写自己的图像加载和缓存代码。使用解决此问题的库之一。有关更多指导,请参见Picasso v/s Imagelodader v/s壁画与滑行。

这是由于大型图像而发生的。尝试使用小尺寸的图像,即手机屏幕分辨率。

我也有同样的问题。尝试使用2100 x 1300 px减小油漆中的图像大小,但该应用程序落后很大。

相关内容

最新更新