实际上,我正在尝试创建一个包含 n 个多媒体文件的应用程序,其中包括图像和视频。我的应用程序大小约为 34MB
,我的资产大小约为 60mb
。当我在普通设备上加载应用程序时,我们没有遇到任何问题,但是具有 2K resolutions
的设备,例如 Nexus 6P, HTC, LG
等,应用程序在进程中间崩溃错误“内存不足”。我已经用这个生成了错误报告。我也尝试过位图工厂。同时我在数组方法中使用视频。
任何人都可以帮助解决这个问题吗?
致命异常:主进程:com.example.we.appname,PID:9353
java.lang.OutOfMemoryError:无法在 dalvik.system.VMRuntime.newNonMovableArray(本机方法)在 android.graphics.BitmapFactory.nativeDecodeAsset(本机方法)在 android.graphics 上分配 1660396 字节分配,其中有 1243880 个可用字节和 1214KB。 BitmapFactory.decodeStream(BitmapFactory.java:620) 在 android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:455) 在 android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:1155) 在 android.content.res.ResourcesImpl .loadDrawableForCookie(ResourcesImpl.java:720) 在 android.content.res.ResourcesImpl.loadDrawable(ResourcesImpl.java:571) 在 android.content.res.Resources.loadDrawable(Resources.java:858) 在 android.content.res。 TypedArray.getDrawable(TypedArray.java:928) 在 android.graphics.drawable.AnimationDrawable.inflateChildElements(AnimationDrawable.java:327) 在 android.graphics.drawable.AnimationDrawable.inflate(AnimationDrawable.java:297) 在 android.graphics.drawable .DrawableInflater.inflat eFromXml(DrawableInflater.java:130) 在 android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:1227) 在 android.graphics.drawable.Drawable.createFromXml(Drawable.java:1200) 在 android.content.res.ResourcesImpl .loadDrawableForCookie(ResourcesImpl.java:715) 在 android.content.res.ResourcesImpl.loadDrawable(ResourcesImpl.java:571) 在 android.content.res.Resources.getDrawable(Resources.java:771) 在 android.content.Context。 getDrawable(Context.java:525) 在 android.view.View.setBackgroundResource(View.java:18228) 在 com.example.kq.meettheshps.Score_Card.onCreate(Score_Card.java:58) 在 android.app.Activity.performCreate (Activity.java:6679) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java: 2726) 在 android.app.ActivityThread.-wrap12(ActivityThread.java) 在 android.app.ActivityThread\(H.handleMessage(ActivityT hread.java:1477) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:154) 在 android.app.ActivityThread.main(ActivityThread.java:6119) ) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.ZygoteInit\)MethodAndArgsCaller.run(ZygoteInit.java:886) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit .java:776)
原文由 NatheemYousf 发布,翻译遵循 CC BY-SA 4.0 许可协议
我发现的简单解决方案是添加
hardwareAccelerated
&AndroidManifest.xml
&largeHeap
application