布局中的微小更改会使应用程序在Android中崩溃。

时间:2013-09-25 17:41:25

标签: android eclipse android-layout crash relativelayout

我为android制作了一个应用程序,它在模拟器和手机中正常加载,然后我做了一些小改动,比如在Eclipse中使用“Graphical Layout”编辑选项移动布局中文本View元素的位置。然后应用程序不再启动,它只是加载一个空白活动,并在2-3秒内崩溃。 我正在使用的布局当前看起来像这样(这是布局的崩溃状态):

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        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"
        tools:context=".BMI" >

        <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/editText1"
        android:layout_alignLeft="@+id/textView2"
        android:text="@string/weight"
        android:textAppearance="?android:attr/textAppearanceMedium" />

        <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView3"
        android:layout_below="@+id/textView3"
        android:layout_marginLeft="15dp"
        android:layout_marginTop="30dp"
        android:text="@string/button1_text" />

        <EditText
        android:id="@+id/editText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/textView2"
        android:layout_toRightOf="@+id/textView3"
        android:ems="4"
        android:inputType="numberDecimal" />

        <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/editText2"
        android:layout_below="@+id/editText2"
        android:ems="4"
        android:inputType="numberDecimal" >

            <requestFocus />
        </EditText>

        <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView2"
        android:layout_alignParentTop="true"
        android:text="@string/bmi"
        android:textAppearance="?android:attr/textAppearanceMedium" />

        <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/editText2"
        android:layout_alignParentTop="true"
        android:text="@string/default_text"
        android:textAppearance="?android:attr/textAppearanceMedium" />

        <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView4"
        android:layout_marginLeft="17dp"
        android:text="@string/height"
        android:textAppearance="?android:attr/textAppearanceMedium" />

        <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/button1"
        android:layout_alignBottom="@+id/button1"
        android:layout_toRightOf="@+id/editText1"
        android:text="@string/button2_text" />

    </RelativeLayout>

3 个答案:

答案 0 :(得分:2)

通过转到“项目 - &gt;清理...”尝试清理和重建项目,然后再次运行应用程序。在Eclipse中对layout进行更改之后,Eclipse有时不会立即“获取”更改,因此您最终会遇到愚蠢的ClassCastException。清洁通常可以解决这个问题。

如果这不能解决您的问题,那么请从崩溃中发布logcat,但这应该可以解决问题。

答案 1 :(得分:0)

我在Eclipse和IntelliJ上都遇到了Android构建工具的几个问题。通常导致xml文件无法更新或向上或向下移动一两行。通常,通过重建项目或重新启动IDE可以解决此问题。

答案 2 :(得分:0)

// try this 
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                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"
                tools:context=".BMI" >

    <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/editText1"
            android:layout_alignLeft="@+id/textView2"
            android:text="@string/weight"
            android:textAppearance="@android:style/TextAppearance.Medium" />

    <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/textView3"
            android:layout_below="@+id/textView3"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="30dp"
            android:text="@string/button1_text" />

    <EditText
            android:id="@+id/editText2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/textView2"
            android:layout_toRightOf="@+id/textView3"
            android:ems="4"
            android:inputType="numberDecimal" />

    <EditText
            android:id="@+id/editText1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/editText2"
            android:layout_below="@+id/editText2"
            android:ems="4"
            android:inputType="numberDecimal" >

    </EditText>

    <TextView
            android:id="@+id/textView4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/textView2"
            android:layout_alignParentTop="true"
            android:text="@string/bmi"
            android:textAppearance="@android:style/TextAppearance.Medium" />

    <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/editText2"
            android:layout_alignParentTop="true"
            android:text="@string/default_text"
            android:textAppearance="@android:style/TextAppearance.Medium" />

    <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/textView4"
            android:layout_marginLeft="17dp"
            android:text="height"
            android:textAppearance="@android:style/TextAppearance.Medium"/>

    <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/button1"
            android:layout_alignBottom="@+id/button1"
            android:layout_toRightOf="@+id/editText1"
            android:text="@string/button2_text" />

</RelativeLayout>