Android 对一个活动进行类膨胀时出错

Android 对一个活动进行类膨胀时出错,android,Android,我有一个活动导致我的应用程序崩溃。我不明白为什么只有这一个。我想知道这是否只是某个地方的打字错误 以下是错误: 09-15 15:30:52.541 16828-16828/dyson.cornell.edu.womeninleadership E/AndroidRuntime﹕ FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity ComponentInfo{dyson.cornell.edu.w

我有一个活动导致我的应用程序崩溃。我不明白为什么只有这一个。我想知道这是否只是某个地方的打字错误

以下是错误:

09-15 15:30:52.541  16828-16828/dyson.cornell.edu.womeninleadership E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{dyson.cornell.edu.womeninleadership/dyson.cornell.edu.womeninleadership.SpeakerElement}: android.view.InflateException: Binary XML file line #15: Error inflating class <unknown>
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2110)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135)
        at android.app.ActivityThread.access$700(ActivityThread.java:143)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1241)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:4962)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
        at dalvik.system.NativeStart.main(Native Method)
 Caused by: android.view.InflateException: Binary XML file line #15: Error inflating class <unknown>
        at android.view.LayoutInflater.createView(LayoutInflater.java:619)
        at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:666)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:691)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:752)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:760)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:495)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
        at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:318)
        at android.app.Activity.setContentView(Activity.java:1914)
        at android.support.v7.app.ActionBarActivity.superSetContentView(ActionBarActivity.java:216)
        at android.support.v7.app.ActionBarActivityDelegateICS.setContentView(ActionBarActivityDelegateICS.java:110)
        at android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:76)
        at dyson.cornell.edu.womeninleadership.SpeakerElement.onCreate(SpeakerElement.java:22)
        at android.app.Activity.performCreate(Activity.java:5160)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135)
            at android.app.ActivityThread.access$700(ActivityThread.java:143)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1241)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:4962)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
            at dalvik.system.NativeStart.main(Native Method)
 Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Constructor.constructNative(Native Method)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
        at android.view.LayoutInflater.createView(LayoutInflater.java:593)
            at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
            at android.view.LayoutInflater.onCreateView(LayoutInflater.java:666)
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:691)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:752)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:760)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:495)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
            at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:318)
            at android.app.Activity.setContentView(Activity.java:1914)
            at android.support.v7.app.ActionBarActivity.superSetContentView(ActionBarActivity.java:216)
            at android.support.v7.app.ActionBarActivityDelegateICS.setContentView(ActionBarActivityDelegateICS.java:110)
            at android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:76)
            at dyson.cornell.edu.womeninleadership.SpeakerElement.onCreate(SpeakerElement.java:22)
            at android.app.Activity.performCreate(Activity.java:5160)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135)
            at android.app.ActivityThread.access$700(ActivityThread.java:143)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1241)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:4962)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
            at dalvik.system.NativeStart.main(Native Method)
 Caused by: java.lang.OutOfMemoryError
        at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
        at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:605)
        at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:453)
        at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:813)
        at android.content.res.Resources.loadDrawable(Resources.java:2277)
        at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
        at android.widget.ImageView.<init>(ImageView.java:126)
        at android.widget.ImageView.<init>(ImageView.java:116)
            at java.lang.reflect.Constructor.constructNative(Native Method)
            at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
            at android.view.LayoutInflater.createView(LayoutInflater.java:593)
            at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
            at android.view.LayoutInflater.onCreateView(LayoutInflater.java:666)
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:691)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:752)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:760)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:495)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
            at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:318)
            at android.app.Activity.setContentView(Activity.java:1914)
            at android.support.v7.app.ActionBarActivity.superSetContentView(ActionBarActivity.java:216)
            at android.support.v7.app.ActionBarActivityDelegateICS.setContentView(ActionBarActivityDelegateICS.java:110)
            at android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:76)
            at dyson.cornell.edu.womeninleadership.SpeakerElement.onCreate(SpeakerElement.java:22)
            at android.app.Activity.performCreate(Activity.java:5160)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135)
            at android.app.ActivityThread.access$700(ActivityThread.java:143)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1241)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:4962)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
            at dalvik.system.NativeStart.main(Native Method)

异常堆栈的底部是一个java.lang.OutOfMemoryError,在解码ImageView中的一个图像时抛出。一般来说,你应该预计你的应用程序的内存不会超过16MB。Android的标准位图每像素使用4个字节。这意味着一张400万像素的图像将使用所有可用的RAM。检查图像,缩小过大的图像


如果您的图像不需要高色彩保真度,另一种选择是使用每像素仅需要2字节的不同颜色。可能有一种方法可以通过xml指定配置,但我不知道。我将在onCreate中加载位图(使用较低保真度的Bitmap.Config值),然后在ImageView上调用setImageBitmap。

java.lang.OutOfMemoryError at android.graphics.BitmapFactory
。你要加载的图片有多大?哇!3333x2500。那只是一个占位符。我把它换成了另一张图片,现在它不会崩溃耶,
位图
可能很棘手。阅读更多提示。
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent" android:layout_height="match_parent">
        <TextView
            android:id="@+id/speakerElementName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Name"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:layout_marginTop="10dp"
            android:layout_centerHorizontal="true"/>
        <ImageView
            android:id="@+id/speakerElementPicture"
            android:src="@drawable/dash"
            android:layout_below="@id/speakerElementName"
            android:layout_width="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="10dp"
            android:layout_height="150dp"
            android:contentDescription="@string/bios" />
        <TextView
            android:id="@+id/speakerElementPosition"
            android:text="Head of marketing and sales"
            android:layout_below="@id/speakerElementPicture"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="10dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <TextView
            android:id="@+id/speakerElementBio"
            android:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sed neque ut tortor ullamcorper laoreet. Suspendisse pellentesque sagittis felis, eget vestibulum ante lobortis lobortis. Duis mauris justo, elementum nec euismod quis, suscipit sed tortor. Vestibulum euismod vestibulum pellentesque"
            android:layout_marginLeft="40dp"
            android:layout_below="@id/speakerElementPosition"
            android:layout_marginTop="20dp"
            android:layout_centerHorizontal="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </RelativeLayout>
</ScrollView>
    <activity
        android:name=".SpeakerElement"
        android:label="@string/title_activity_speaker_element"
        android:parentActivityName=".speakers" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="dyson.cornell.edu.womeninleadership.speakers" />
    </activity>
package dyson.cornell.edu.womeninleadership;

import android.media.Image;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ImageView;
import android.widget.TextView;

public class SpeakerElement extends ActionBarActivity {
    TextView name;
    TextView position;
    TextView bio;
    ImageView speakerImage;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_speaker_element);
        getActionBar().setDisplayHomeAsUpEnabled(true);
        String data = getIntent().getExtras().getString("speaker");

        // Saving each UI element to a local variable
        name = (TextView)findViewById(R.id.speakerElementName);
        position = (TextView)findViewById(R.id.speakerElementPosition);
        bio = (TextView)findViewById(R.id.speakerElementBio);
        speakerImage = (ImageView)findViewById(R.id.speakerElementPicture);

        if (data.equals("SuzyWelch")) {
            name.setText("Suzy Welch");
            position.setText("Author and Public Speaker, Suzy Welch Communications");
            bio.setText("This is a test");
            speakerImage.setImageResource(R.drawable.dash);
        }
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.speaker_element, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}