Android崩溃 - 背景图片

时间:2016-04-06 03:08:25

标签: android image android-studio background

我有一个包含2个活动的应用程序,每个活动都链接到一个单独的xml文件,并使用单独的背景图像q1.jpg和q2.jpg。

使用第二张图像时总是崩溃。我无法弄清楚为什么。当我将两个活动设置为同一个图像时,它在我为两个背景设置相同的图片时都有效(对于q1和q2),但每当我尝试同时使用它们时,它就会在第二个活动中崩溃。

使用2张图片使用太多内存?这两张照片都不超过1MB。

这是下一个活动(第二个活动)。 (我已经取出所有内容并且仍然收到错误,因此它非常空白。应该只显示背景图像)

public class Next extends Activity {

    String message;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        Log.d("tag2", "got here");
        super.onCreate(savedInstanceState);
        Log.d("tag3", "creates");
        setContentView(R.layout.activity_next);
        Log.d("tag4", "get layout: activity_next"); //this is only log not displayed in terminal.
        //setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);


    }
}

activity_next.XML:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context="com.example.rainbowfish.reflection.MainActivity">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">



    </android.support.design.widget.AppBarLayout>

    <include layout="@layout/content_main" />



</android.support.design.widget.CoordinatorLayout>

content_next.XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="com.example.rainbowfish.reflection.Next"
    tools:showIn="@layout/activity_next"
    android:background="@drawable/reflection2">


</RelativeLayout>

错误信息是这样的:

 FATAL EXCEPTION: main
    Process: com.example.rainbowfish.reflection, PID: 31148
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
              at android.app.ActivityThread.access$800(ActivityThread.java:144)
              at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
              at android.os.Handler.dispatchMessage(Handler.java:102)
              at android.os.Looper.loop(Looper.java:135)
              at android.app.ActivityThread.main(ActivityThread.java:5221)
              at java.lang.reflect.Method.invoke(Native Method)
              at java.lang.reflect.Method.invoke(Method.java:372)
              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
           Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>
              at android.view.LayoutInflater.createView(LayoutInflater.java:633)
              at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
              at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682)
              at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)
              at android.view.LayoutInflater.parseInclude(LayoutInflater.java:892)
              at android.view.LayoutInflater.rInflate(LayoutInflater.java:802)
              at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
              at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
              at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
              at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:377)
              at android.app.Activity.setContentView(Activity.java:2144)
              at com.example.rainbowfish.reflection.Next.onCreate(Next.java:30)
              at android.app.Activity.performCreate(Activity.java:5937)
              at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
              at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
              at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) 
              at android.app.ActivityThread.access$800(ActivityThread.java:144) 
              at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) 
              at android.os.Handler.dispatchMessage(Handler.java:102) 
              at android.os.Looper.loop(Looper.java:135) 
              at android.app.ActivityThread.main(ActivityThread.java:5221) 
              at java.lang.reflect.Method.invoke(Native Method) 
              at java.lang.reflect.Method.invoke(Method.java:372) 
              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
           Caused by: java.lang.reflect.InvocationTargetException
              at java.lang.reflect.Constructor.newInstance(Native Method)
              at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
              at android.view.LayoutInflater.createView(LayoutInflater.java:607)
              at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55) 
              at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682) 
              at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741) 
              at android.view.LayoutInflater.parseInclude(LayoutInflater.java:892) 
              at android.view.LayoutInflater.rInflate(LayoutInflater.java:802) 
              at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
              at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
              at android.view.LayoutInflater.inflate(LayoutInflater.java:365) 
              at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:377) 
              at android.app.Activity.setContentView(Activity.java:2144) 
              at com.example.rainbowfish.reflection.Next.onCreate(Next.java:30) 
              at android.app.Activity.performCreate(Activity.java:5937) 
              at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105) 
              at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251) 
              at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) 
              at android.app.ActivityThread.access$800(ActivityThread.java:144) 
              at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) 
              at android.os.Handler.dispatchMessage(Handler.java:102) 
              at android.os.Looper.loop(Looper.java:135) 
              at android.app.ActivityThread.main(ActivityThread.java:5221) 
              at java.lang.reflect.Method.invoke(Native Method) 
              at java.lang.reflect.Method.invoke(Method.java:372) 
              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
           Caused by: java.lang.OutOfMemoryError: Failed to allocate a 51840012 byte allocation with 4194304 free bytes and 13MB until OOM
              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:444)
              at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:973)
              at android.content.res.Resources.loadDrawableForCookie(Resources.java:2423)
              at android.content.res.Resources.loadDrawable(Resources.java:2330)
              at android.content.res.TypedArray.getDrawable(TypedArray.java:749)
              at android.view.View.<init>(View.java:3730)
              at android.view.ViewGroup.<init>(ViewGroup.java:491)
              at android.widget.RelativeLayout.<init>(RelativeLayout.java:248)
              at android.widget.RelativeLayout.<init>(RelativeLayout.java:244)
              at android.widget.RelativeLayout.<init>(RelativeLayout.java:240)
              at java.lang.reflect.Constructor.newInstance(Native Method) 
              at java.lang.reflect.Constructor.newInstance(Constructor.java:288) 
              at android.view.LayoutInflater.createView(LayoutInflater.java:607) 
              at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55) 
              at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682) 
              at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741) 
              at android.view.LayoutInflater.parseInclude(LayoutInflater.java:892) 
              at android.view.LayoutInflater.rInflate(LayoutInflater.java:802) 
              at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
              at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
              at android.view.LayoutInflater.inflate(LayoutInflater.java:365) 
              at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:377) 
              at android.app.Activity.setContentView(Activity.java:2144) 
              at com.example.rainbowfish.reflection.Next.onCreate(Next.java:30) 
              at android.app.Activity.performCreate(Activity.java:5937) 
              at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105) 
              at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251) 
              at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) 
              at android.app.ActivityThread.access$800(ActivityThread.java:144) 
              at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) 
              at android.os.Handler.dispatchMessage(Handler.java:102) 
              at android.os.Looper.loop(Looper.java:135) 
              at android.app.ActivityThread.main(ActivityThread.java:5221) 
              at java.lang.reflect.Method.invoke(Native Method) 
              at java.lang.reflect.Method.invoke(Method.java:372) 
              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
 

0 个答案:

没有答案