android.view.InflateException原因:java.lang.OutOfMemoryError

时间:2014-10-08 23:22:34

标签: java android picasso

此问题似乎只发生在少数设备上,但会为这些用户崩溃整个应用。

该应用程序一次加载两个图像,一个是原始图像,一个是滚动效果的模糊副本。我现在正在使用毕加索加载图像来减少问题,但这仍然适用于少数人。

每次打开应用程序时都会加载一组新图像(原始图像和模糊图像)。

图像在onCreateView方法中初始化如下:

    nonBlurImageView = (ImageView) layoutView.findViewById(R.id.orginal_image);
    Picasso.with(getActivity()).load(getResources().getIdentifier(bgNum, "drawable", getActivity().getPackageName())).into(nonBlurImageView);

    blurredImageView = (ImageView) layoutView.findViewById(R.id.blured_image);
    Picasso.with(getActivity()).load(getResources().getIdentifier(bgNum+"_blur", "drawable", getActivity().getPackageName())).into(blurredImageView);

堆栈跟踪以

开头
android.view.InflateException: Binary XML file line #24: Error inflating class <unknown>
   at android.view.LayoutInflater.createView(LayoutInflater.java:626)
   at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
   at android.view.LayoutInflater.onCreateView(LayoutInflater.java:675)

#24是

            <ImageView
            android:id="@+id/orginal_image"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="centerCrop"
            android:src="@drawable/bg_1" />

GC有什么问题吗?有没有更好的方法可以做到这一点?

谢谢!

1 个答案:

答案 0 :(得分:1)

虽然很晚,但可能有人偶然发现了这里。我的应用程序在启动时遇到了几乎相同的问题,因为它尝试将空String加载到ImageView。空字符串在Piccasso.load()方法中抛出异常,但null没有。 null会加载占位符。

因此,如果您的网址为空或您的图片资源ID等于零,请先尝试检查您的网址,如果是,请使用null代替&#34;&#34; / 0。

希望这有助于即使它迟到了:D