【问题标题】:Minor changes in layout make the application to crash in Android.布局的微小变化会使应用程序在 Android 中崩溃。
【发布时间】:2013-09-25 17:41:25
【问题描述】:

我为android做了一个应用程序,它在模拟器和手机中加载良好,然后我做了一些小的改变,比如在Eclipse中的“图形布局”编辑选项的帮助下改变布局中文本视图元素的位置.之后应用程序不再启动,它只是加载一个空白活动并在 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>

【问题讨论】:

  • 发布错误消息在您的 LogCat 中
  • 删除&lt;requestFocus /&gt;,我不知道为什么会这样。
  • @RandumbTune:同样的布局在我的 Eclipse IDE 中工作,发布你的错误日志
  • @EvanB 仅仅因为您不知道它的作用,并不意味着它是错误的。它与 requestFocus 标签无关。
  • 您按照我的建议尝试清洁了吗?

标签: android eclipse android-layout crash android-relativelayout


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    我在 Eclipse 和 IntelliJ 上使用 Android 构建工具时遇到了一些问题。通常会导致 xml 文件没有得到更新或向上或向下移动一两行。通常,通过重建项目或重新启动 IDE 可以解决此问题。

    【讨论】:

      【解决方案3】:
      // 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>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-05
        • 1970-01-01
        相关资源
        最近更新 更多