【问题标题】:java.lang.OutOfMemoryError: Failed to allocate a 11675148 byte allocation with 6java.lang.OutOfMemoryError: 无法分配 11675148 字节分配与 6
【发布时间】:2018-07-05 14:23:43
【问题描述】:

谁能理解这个错误?这是在物理设备 Android 6.0 上运行的,但在 VD 5.0 上运行良好。

这是错误

Process: com.example.ericr.pokerquizzer, PID: 10884
java.lang.OutOfMemoryError: Failed to allocate a 11675148 byte allocation with 6
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:44
at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java
at android.content.res.Resources.loadDrawableForCookie(Resources.java:2638)
at android.content.res.Resources.loadDrawable(Resources.java:2543)
at android.content.res.Resources.getDrawable(Resources.java:806)
at android.content.Context.getDrawable(Context.java:458)
at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:3
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatD
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatD
at android.support.v7.content.res.AppCompatResources.getDrawable(AppCompatRe
at android.support.v7.widget.AppCompatImageHelper.loadFromAttributes(AppComp
at android.support.v7.widget.AppCompatImageView.<init>(AppCompatImageView.ja
at android.support.v7.widget.AppCompatImageView.<init>(AppCompatImageView.ja
at android.support.v7.app.AppCompatViewInflater.createImageView(AppCompatVie
at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInfl
at android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelega
at android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDele
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.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.AppCompatDelegateImplV9.setContentView(AppCompatDe
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity
at com.example.ericr.pokerquizzer.PlayActivity.onCreate(PlayActivity.java:37
at android.app.Activity.performCreate(Activity.java:6245)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:113
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2490)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5443)

                                                                                at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.jav
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)

好吧,在我打字的时候,我做了更多的研究,我发现这个问题与图像密度有关?但是,我的应用在低密度平板电脑 (Nexus 9) 上运行良好,在高密度虚拟设备 (Nexus 5) 上运行良好,但在中等密度 Moto G3(物理设备)上崩溃。

提前致谢

【问题讨论】:

  • 使用图片加载库来缓解这个问题
  • @ZUNJAE 极不可能真正提供帮助。你不知道他是否有内存泄漏,如果他的问题是加载图像,或者他的问题只是使用了太大的文件。

标签: android dpi


【解决方案1】:

在将图像添加到 android 项目之前对其进行优化,您可以使用 RIOT 等免费软件进行优化,并确保如果您从 url 进行图像调用,它们始终是单例的

【讨论】:

  • 优化是什么意思?而且我不完全理解单例这个词。我有一种方法可以在同一活动上的某个点击侦听器上更新图像视图。
  • Riot 在不损失太多质量的情况下最小化了 img 的大小,您还在使用此插件将资产添加到您的项目中吗? plugins.jetbrains.com/plugin/7658-android-drawable-importer
  • 问题已解决我使用的是巨大的图像,然后在应用程序中缩小它们。所以现在他们只是低质量开始。大声笑,你可以告诉我,我对这些东西很陌生
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-29
  • 1970-01-01
  • 1970-01-01
  • 2018-10-02
  • 2018-07-16
  • 1970-01-01
相关资源
最近更新 更多