2014-05-05 36 views
-2

我有一个错误“java.lang.OutOfMemoryError”怎么解决? (对不起,这个坏日志格式,我不写很多代码文本)java.lang.OutOfMemoryError ImageView的

我activity_main.xml中,这个错误

<ImageView 
     android:layout_width="350dp" 
     android:layout_height="700dp" 
     android:id="@+id/imageViewCosmonaut" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="-50dp" 
     android:src="@drawable/background_cosmonaut"/> 

logcat的

05-05 16:04:10.313 2475-2475/com.vlad.genius.game E/AndroidRuntime﹕ FATAL EXCEPTION: main 
     java.lang.RuntimeException: Unable to start activity ComponentInfo{com.vlad.genius.game/com.vlad.genius.game.MainActivity}: android.view.InflateException: Binary XML file line #16: Error inflating class android.widget.ImageView 
       ... 
    Caused by: android.view.InflateException: Binary XML file line #16: Error inflating class android.widget.ImageView 
       ... 
    Caused by: java.lang.reflect.InvocationTargetException 
       ... 


    Caused by: java.lang.OutOfMemoryError 
        at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) 
        android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:800) 
        at android.content.res.Resources.loadDrawable(Resources.java:2105) 
        at android.content.res.TypedArray.getDrawable(TypedArray.java:601) 
        com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
                 at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669) 
                 at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694) 
               com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:267) 
                 at android.app.Activity.setContentView(Activity.java:1895) 
                 at com.vlad.genius.game.MainActivity.onCreate(MainActivity.java:23) 
              
                 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 
                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
                 at dalvik.system.NativeStart.main(Native Method) 
+0

您是否尝试搜索错误?有很多问题会引起这个错误 – tyczj

+0

你的java代码在哪里?很可能你的Java代码将成为内存不足错误的罪魁祸首,而不是你的xml。 – DrinkJavaCodeJava

+0

因此,a)您使用的是什么设备,以及b)ImageView中图像的分辨率是多少? – dmon

回答

1

显然已分配给位图您的图片视图太大而无法加载到您的应用空间中。你必须找到一种替代方法。

一般为大型位图,它不是为它们分配在XML是一个好主意。 XML的通货膨胀发生在UI线程中,并加载大的位图,即使它不会导致OOM,也会导致偶尔的ANR。

我强烈建议你阅读this article,它可以让你非常宝贵的经验如何应对以正确的方式在Android的图像。

+0

+1关于可能的ANR的信息是一个很好的接触。 –

相关问题