应用程序运行时崩溃-不幸地停止了 - java

我的MainScreen包含4个ImageView,每个ImageView都会将用户发送到类别活动,然后发送Extra数据以在ListView中显示内容,但是一旦我单击任何ImageView,应用程序就会停止工作,并在Logcat中显示此错误消息。
有人知道这是什么意思吗?

块引用
04-13 21:43:53.337 15929-15929 / com.ibuilder.the50recipes E / AndroidRuntime:FATAL EXCEPTION:main
程序:com.ibuilder.the50recipes,PID:15929
java.lang.OutOfMemoryError:未能分配25600012字节分配,其中包含9652808可用字节和9MB,直到OOM
在dalvik.system.VMRuntime.newNonMovableArray(本机方法)
在android.graphics.BitmapFactory.nativeDecodeAsset(本地方法)
在android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:620)
在android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:455)
在android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:1152)
在android.content.res.ResourcesImpl.loadDrawableForCookie(ResourcesImpl.java:855)
在android.content.res.ResourcesImpl.loadDrawable(ResourcesImpl.java:706)
在android.content.res.Resources.getDrawable(Resources.java:776)
在android.content.Context.getDrawable(Context.java:530)
在android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:351)
在android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:200)
在android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:188)
在android.support.v7.content.res.AppCompatResources.getDrawable(AppCompatResources.java:100)
在android.support.v7.widget.AppCompatImageHelper.setImageResource(AppCompatImageHelper.java:85)
在android.support.v7.widget.AppCompatImageView.setImageResource(AppCompatImageView.java:94)
在com.ibuilder.the50recipes.Category_New $ CustomAdapter.getView(Category_New.java:659)
在android.widget.AbsListView.obtainView(AbsListView.java:2406)
在android.widget.ListView.makeAndAddView(ListView.java:1975)
在android.widget.ListView.fillDown(ListView.java:709)
在android.widget.ListView.fillFromTop(ListView.java:770)
在android.widget.ListView.layoutChildren(ListView.java:1749)
在android.widget.AbsListView.onLayout(AbsListView.java:2205)
在android.view.View.layout(View.java:17564)
在android.view.ViewGroup.layout(ViewGroup.java:5654)
在android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
在android.widget.LinearLayout.layoutHorizo​​ntal(LinearLayout.java:1730)
在android.widget.LinearLayout.onLayout(LinearLayout.java:1496)
在android.view.View.layout(View.java:17564)
在android.view.ViewGroup.layout(ViewGroup.java:5654)
在android.widget.RelativeLayout.onLayout(RelativeLayout.java:1079)
在android.view.View.layout(View.java:17564)
在android.view.ViewGroup.layout(ViewGroup.java:5654)
在android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
在android.widget.FrameLayout.onLayout(FrameLayout.java:261)
在android.view.View.layout(View.java:17564)
在android.view.ViewGroup.layout(ViewGroup.java:5654)
在android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
在android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
在android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
在android.view.View.layout(View.java:17564)
在android.view.ViewGroup.layout(ViewGroup.java:5654)
在android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
在android.widget.FrameLayout.onLayout(FrameLayout.java:261)
在android.view.View.layout(View.java:17564)
在android.view.ViewGroup.layout(ViewGroup.java:5654)
在android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
在android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
在android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
在android.view.View.layout(View.java:17564)
在android.view.ViewGroup.layout(ViewGroup.java:5654)
在android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
在android.widget.FrameLayout.onLayout(FrameLayout.java:261)
在com.android.internal.policy.DecorView.onLayout(DecorView.java:725)
在android.view.View.layout(View.java:17564)
在android.view.ViewGroup.layout(ViewGroup.java:5654)
在android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2406)
在android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2126)
04-13 21:43:53.337 15929-15929 / com.ibuilder.the50recipes E / AndroidRuntime:at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1286)
在android.view.ViewRootImpl $ TraversalRunnable.run(ViewRootImpl.java:6536)
在android.view.Choreographer $ CallbackRecord.run(Choreographer.java:871)
在android.view.Choreographer.doCallbacks(Choreographer.java:683)
在android.view.Choreographer.doFrame(Choreographer.java:619)
在android.view.Choreographer $ FrameDisplayEventReceiver.run(Choreographer.java:857)
在android.os.Handler.handleCallback(Handler.java:751)
在android.os.Handler.dispatchMessage(Handler.java:95)
在android.os.Looper.loop(Looper.java:154)
在android.app.ActivityThread.main(ActivityThread.java:6247)
在java.lang.reflect.Method.invoke(本机方法)
在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:872)
在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)

参考方案

看起来当它只有9 mb直到内存不足时,它正在尝试分配25 mb的内存。

您可能需要阅读如何更有效地加载大型位图的信息:

https://developer.android.com/topic/performance/graphics/load-bitmap.html

从那里说如何有效地加载资源:

public static Bitmap decodeSampledBitmapFromResource(Resources res, int resId,
        int reqWidth, int reqHeight) {

    // First decode with inJustDecodeBounds=true to check dimensions
    final BitmapFactory.Options options = new BitmapFactory.Options();
    options.inJustDecodeBounds = true;
    BitmapFactory.decodeResource(res, resId, options);

    // Calculate inSampleSize
    options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);

    // Decode bitmap with inSampleSize set
    options.inJustDecodeBounds = false;
    return BitmapFactory.decodeResource(res, resId, options);
}

JAVA:字节码和二进制有什么区别? - java

java字节代码(已编译的语言,也称为目标代码)与机器代码(当前计算机的本机代码)之间有什么区别?我读过一些书,他们将字节码称为二进制指令,但我不知道为什么。 参考方案 字节码是独立于平台的,在Windows中运行的编译器编译的字节码仍将在linux / unix / mac中运行。机器代码是特定于平台的,如果在Windows x86中编译,则它将仅在Win…

java:继承 - java

有哪些替代继承的方法? java大神给出的解决方案 有效的Java:偏重于继承而不是继承。 (这实际上也来自“四人帮”)。他提出的理由是,如果扩展类未明确设计为继承,则继承会引起很多不正常的副作用。例如,对super.someMethod()的任何调用都可以引导您通过未知代码的意外路径。取而代之的是,持有对本来应该扩展的类的引用,然后委托给它。这是与Eric…

Java:BigInteger,如何通过OutputStream编写它 - java

我想将BigInteger写入文件。做这个的最好方式是什么。当然,我想从输入流中读取(使用程序,而不是人工)。我必须使用ObjectOutputStream还是有更好的方法?目的是使用尽可能少的字节。谢谢马丁 参考方案 Java序列化(ObjectOutputStream / ObjectInputStream)是将对象序列化为八位字节序列的一种通用方法。但…

Java DefaultSslContextFactory密钥库动态更新 - java

我有一个使用org.restlet.engine.ssl.DefaultSslContextFactory的现有应用程序和一个在服务器启动时加载的密钥库文件。我有另一个应用程序,该应用程序创建必须添加的证书服务器运行时动态地更新到密钥库文件。为此,我在代码中创建了证书和私钥,然后将其写入到目录。该目录由bash脚本监视,该脚本检查是否有新文件,如果出现,它将…

Java-如何将此字符串转换为日期? - java

我从服务器收到此消息,我不明白T和Z的含义,2012-08-24T09:59:59Z将此字符串转换为Date对象的正确SimpleDateFormat模式是什么? java大神给出的解决方案 这是ISO 8601标准。您可以使用SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM…