开发者

Random Android InflateException when loading Activity

开发者 https://www.devze.com 2023-03-19 04:35 出处:网络
I am getting the following random Exception when running this Activity. I found another thread here on SO suggesting that all of my styles inherit from parent=\"android:Theme\" but that did not help.

I am getting the following random Exception when running this Activity. I found another thread here on SO suggesting that all of my styles inherit from parent="android:Theme" but that did not help. I have run HierarchyViewer and layoutopt tools but have not found any problems with the layout file. And I have cleaned the project.

The exception is happening on the line:

ReceiptActivity.java:54 setContentView(R.layout.receipt_activity);

Here is the layout file, receipt_activity.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" 
android:layout_height="fill_parent"
android:orientation="vertical" 
android:background="@drawable/background">        
<LinearLayout android:layout_width="fill_parent"
    android:paddingLeft="10dip"
    android:paddingRight="10dip"
    android:layout_height="wrap_content" android:orientation="vertical">
        <TextView android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_marginLeft="3dip"
        android:layout_marginRight="3dip"
        android:layout_marginTop="10dip"
        android:textSize="19sp"
        android:text="@string/receipt_question"
        android:gravity="center"/>

         <EditText
        android:id="@+id/txtEmailOrSms"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="30dip"
        android:layout_marginLeft="3dip"
        android:layout_marginRight="3dip"            
        android:textSize="15sp"
        android:maxLines="1"            
        android:layout_gravity="left" 
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:inputType="textEmailAddress"
        android:hint="@string/enter_email"
        android:imeOptions="actionDone"             
        />

        <RadioGroup
        android:id="@+id/receiptTypeRadioGroup"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical">
            <RadioButton
            android:id="@+id/emailReceipt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=开发者_运维知识库"Email Receipt"
            android:textSize="15sp"
            android:checked="true"
            android:width="150dip"
            android:layout_marginRight="5dip"
            android:textColor="#FFF"
            >
            </RadioButton>

            <RadioButton
            android:id="@+id/smsReceipt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Text Receipt"
            android:textSize="15sp" 
            android:width="150dip" 
            android:layout_marginRight="5dip"             
            android:textColor="#FFF"
            >
            </RadioButton>
        </RadioGroup>

</LinearLayout>
<LinearLayout android:id="@+id/footer" 
    android:layout_width="fill_parent"
    android:layout_height="60dip"
    android:background="@drawable/button_bar_background"
    android:orientation="horizontal"
    android:gravity="bottom"
    android:layout_alignParentBottom="true" 
    style="@android:style/ButtonBar">
    <Button
        android:id="@+id/noThanksBtn"
        android:layout_height="fill_parent"
        android:layout_width="0dip"
        android:layout_weight="1"
        android:layout_marginLeft="1dip"
        style="@style/DarkButton"
        android:text="@string/no_thanks"/>
           <Button
        android:id="@+id/sendReceiptBtn"
        android:layout_height="fill_parent"
        android:layout_width="0dip"
        android:layout_weight="1"
        android:layout_marginRight="1dip"
        style="@style/DarkButton"
        android:text="@string/send_receipt"/>     
</LinearLayout>         
</RelativeLayout>

Here is the Exception:

    07-11 07:08:01.040: ERROR/AndroidRuntime(15635): FATAL EXCEPTION: main
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.bestfitmobile.netsecure/com.bestfitmobile.netsecure.ui.ReceiptActivity}: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at android.os.Handler.dispatchMessage(Handler.java:99)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at android.os.Looper.loop(Looper.java:130)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at android.app.ActivityThread.main(ActivityThread.java:3683)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at java.lang.reflect.Method.invokeNative(Native Method)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at java.lang.reflect.Method.invoke(Method.java:507)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at dalvik.system.NativeStart.main(Native Method)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635): Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at android.view.LayoutInflater.createView(LayoutInflater.java:518)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at android.view.LayoutInflater.inflate(LayoutInflater.java:386)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:207)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at android.app.Activity.setContentView(Activity.java:1657)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at com.bestfitmobile.netsecure.ui.ReceiptActivity.onCreate(ReceiptActivity.java:54)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     ... 11 more
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635): Caused by: java.lang.reflect.InvocationTargetException
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at java.lang.reflect.Constructor.constructNative(Native Method)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at java.lang.reflect.Constructor.newInstance(Constructor.java:415)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at android.view.LayoutInflater.createView(LayoutInflater.java:505)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     ... 21 more
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635): Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:460)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:336)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:697)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at android.content.res.Resources.loadDrawable(Resources.java:1709)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at android.view.View.<init>(View.java:1951)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at android.view.View.<init>(View.java:1899)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at android.view.ViewGroup.<init>(ViewGroup.java:286)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     at android.widget.RelativeLayout.<init>(RelativeLayout.java:173)
    07-11 07:08:01.040: ERROR/AndroidRuntime(15635):     ... 24 more


The answer is here:

07-11 07:08:01.040: ERROR/AndroidRuntime(15635): Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget

The drawable called background is too large. If you remove that it should load fine. Not sure how big that can be, but evidently you used an image too large.

0

精彩评论

暂无评论...
验证码 换一张
取 消