当前位置: 首页 > 知识库问答 >
问题:

Android应用程序中的OutOfMemoryError

薄伟彦
2023-03-14

有人能给我解释一下这个LogCat输出以及如何解决它吗?我用手机(三星Galaxy Nexus)测试我的Android应用程序,就这样;系统强制拘留并将此打印在日志中...

04-17 09:43:09.189: E/AndroidRuntime(1194): FATAL EXCEPTION: main
04-17 09:43:09.189: E/AndroidRuntime(1194): java.lang.OutOfMemoryError
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:527)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:301)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:326)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.graphics.drawable.Drawable.createFromPath(Drawable.java:894)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.widget.ImageView.resolveUri(ImageView.java:638)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.widget.ImageView.setImageURI(ImageView.java:379)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at tian.proto.galeriaImagenes$ImageAdapter.getView(galeriaImagenes.java:169)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.widget.AbsSpinner.onMeasure(AbsSpinner.java:193)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.view.View.measure(View.java:15172)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4816)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1390)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:681)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:574)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.view.View.measure(View.java:15172)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4816)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.view.View.measure(View.java:15172)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:833)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:574)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.view.View.measure(View.java:15172)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4816)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2148)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.view.View.measure(View.java:15172)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1850)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1102)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1275)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4214)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.view.Choreographer.doCallbacks(Choreographer.java:555)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.view.Choreographer.doFrame(Choreographer.java:525)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.os.Handler.handleCallback(Handler.java:615)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.os.Handler.dispatchMessage(Handler.java:92)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.os.Looper.loop(Looper.java:137)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at android.app.ActivityThread.main(ActivityThread.java:4899)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at java.lang.reflect.Method.invokeNative(Native Method)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at java.lang.reflect.Method.invoke(Method.java:511)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558)
04-17 09:43:09.189: E/AndroidRuntime(1194):     at dalvik.system.NativeStart.main(Native Method)

共有1个答案

凌翔宇
2023-03-14

如果在运行时加载位图,则可以在使用此技术从设备读取位图时对其进行缩放。如果您是从res目录加载它,您可能只需要使用图像编辑器将其缩放。不管怎样,图像显然太大了,内存无法容纳。

 类似资料:
  • 我明白了,我必须提到Proguard属性文件中的外部库。我该怎么提才是问题所在。 请查看我的proguard文件

  • 我试图打开内置的画廊应用程序按下我的应用程序中的按钮。 我正在试用Android 2.3及以上版本的手机。我拥有的手机/平板电脑是 三星S(Android2.3.5)、LG手机(Android3.3)、Nexus One(Android1.3.6)、Android平板电脑(Android4.0.3)和Galaxy Nexus(Android5.3) 我尝试了以下方法: 上述代码在Android平板

  • 我们有一个应用程序,利用在应用程序计费。我们看到的问题如下: 当使用较高版本代码的构建被上传到Play Developer控制台时,In App Billing将停止在设备上的应用程序(使用较低版本代码)上工作,表示“应用程序未配置为计费”。 这很好,在测试的时候,但问题是--当应用程序在Google Play商店中时,会有什么行为?当您替换应用程序(以执行更新)时,处于野生状态(具有较低版本代码

  • 问题内容: 是否有一个可行的示例演示了如何在ListView中动态附加行?例如: 您正在从不同的域中提取RSS feed 然后在ListView中显示前10个项目(当您在后台运行其他线程时,继续提取提要) 您滚动并到达列表的底部,然后单击按钮以查看更多项目 然后,ListView将附加附加的10个项目,现在总共有20个项目。 任何建议如何做到这一点? 尼古拉斯 问题答案: 要将新项动态添加到列表中

  • 问题内容: 现在完成XML SAX解析之后,我将在应用程序中进行JSON解析。我在这里为您提供杰森 现在,我提到了一个Json解析的示例,在该示例中,他们创建了一个jString对象,我对此特定行有疑问,如下所示: 任何人都可以让我澄清一下。完整示例的链接如下: http://www.androidcompetencycenter.com/2009/10/json-parsing-in- andr

  • 我必须使用网格在Android中实现照片浏览器。所以,我想知道GridView和GridLayout之间的区别。 所以我会选择正确的一个。 目前我正在使用GridView动态显示图像。