【问题标题】:App crashing with new layout design应用程序因新的布局设计而崩溃
【发布时间】:2011-12-02 17:22:49
【问题描述】:

在设计程序时,我意识到我的布局行不通。所以我决定创建一个新布局,但是当我将布局添加到我的 setcontentview 时,我的应用程序崩溃了。当我切换回旧布局时,它运行良好。谁能告诉我我做错了什么。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="1280dp"
android:layout_height="800dp"
android:orientation="vertical">
<TextView
    android:id="@+id/mainText"
    android:layout_width="1150dp"
    android:layout_height="50dp"
    android:layout_marginLeft="10dp"
    android:layout_marginTop="50dp"
    android:background="@drawable/text_box"
    android:gravity="center_vertical"
    android:paddingLeft="2sp"
    android:text="@string/hello"
    android:textColor="#000"
    android:textSize="38sp" />
<Button
    android:id="@+id/btnClear"
    android:layout_width="100dp"
    android:layout_height="50dp"
    android:layout_alignParentRight="true"
    android:layout_alignTop="@+id/mainText"
    android:layout_marginRight="10dp"
    android:background="@drawable/clear_btn"
    android:onClick="clearbtn"
    android:text="Clear"
    android:textColor="#000"
    android:textSize="24sp" />
/** A1 */
<RelativeLayout
    android:id="@+id/rl_A1"
    android:layout_width="170dp"
    android:layout_height="130dp"
    android:layout_marginLeft="45dp"
    android:layout_marginTop="120dp" >
    <ImageView
        android:id="@+id/ivA1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:background="@drawable/basic_btn_background" />
    <Button
        android:id="@+id/btnA1"
        android:layout_width="150dp"
        android:layout_height="110dp"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:background="@color/white"/>
</RelativeLayout>
/** A2 */
<RelativeLayout 
    android:id="@+id/rl_A2"
    android:layout_width="170dp"
    android:layout_height="130dp"
    android:layout_alignLeft="@+id/rl_A1"
    android:layout_below="@+id/rl_A1"
    android:layout_marginTop="20dp">
    <ImageView
        android:id="@+id/ivA2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:src="@drawable/basic_btn_background" />
    <Button
        android:id="@+id/btnA2"
        android:layout_width="150dp"
        android:layout_height="110dp"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:background="@color/white"/>
</RelativeLayout>
/** A3 */
<RelativeLayout 
    android:id="@+id/rl_A3"
    android:layout_width="170dp"
    android:layout_height="130dp"
    android:layout_alignLeft="@+id/rl_A2"
    android:layout_below="@+id/rl_A2"
    android:layout_marginTop="20dp">
    <ImageView
        android:id="@+id/ivA3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:src="@drawable/basic_btn_background" />
    <Button
        android:id="@+id/btnA3"
        android:layout_width="150dp"
        android:layout_height="110dp"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:background="@color/white" />
</RelativeLayout>
/** A4 */
<RelativeLayout 
    android:id="@+id/rl_A4"
    android:layout_width="170dp"
    android:layout_height="130dp"
    android:layout_alignLeft="@+id/rl_A3"
    android:layout_below="@+id/rl_A3"
    android:layout_marginTop="20dp">
    <ImageView
        android:id="@+id/ivA4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:src="@drawable/quick_btn_background" />
    <Button
        android:id="@+id/btnA4"
        android:layout_width="150dp"
        android:layout_height="110dp"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:background="@color/white" />
</RelativeLayout>
/** B1 */
<RelativeLayout
     android:id="@+id/rl_B1"
    android:layout_width="170dp"
    android:layout_height="130dp"
    android:layout_alignTop="@+id/rl_A1"
    android:layout_marginLeft="30dp"
    android:layout_toRightOf="@+id/rl_A1">
    <ImageView
        android:id="@+id/ivB1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:src="@drawable/basic_btn_background" />
    <Button
        android:id="@+id/btnB1"
        android:layout_width="150dp"
        android:layout_height="110dp"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:background="@drawable/calculator" />
</RelativeLayout>       
/** B2 */
<RelativeLayout 
    android:id="@+id/rl_B2"
    android:layout_width="170dp"
    android:layout_height="130dp"
    android:layout_alignTop="@+id/rl_A2"
    android:layout_marginLeft="30dp"
    android:layout_toRightOf="@+id/rl_A2" >
    <ImageView
        android:id="@+id/ivB2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:src="@drawable/basic_btn_background" />
    <Button
        android:id="@+id/btnB2"
        android:layout_width="150dp"
        android:layout_height="110dp"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:background="@color/white" />
</RelativeLayout>
/** B3 */
<RelativeLayout 
    android:id="@+id/rl_B3"
    android:layout_width="170dp"
    android:layout_height="130dp"
    android:layout_alignTop="@+id/rl_A3"
    android:layout_marginLeft="30dp"
    android:layout_toRightOf="@+id/rl_A3">
    <ImageView
        android:id="@+id/ivB3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:src="@drawable/page_btn_background" />
    <Button
        android:id="@+id/btnB3"
        android:layout_width="150dp"
        android:layout_height="110dp"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:background="@color/white" />
</RelativeLayout>
/** B4 */
<RelativeLayout 
    android:id="@+id/rl_B4"
    android:layout_width="170dp"
    android:layout_height="130dp"
    android:layout_alignTop="@+id/rl_A4"
    android:layout_marginLeft="30dp"
    android:layout_toRightOf="@+id/rl_A4" >
    <ImageView
        android:id="@+id/ivB4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:src="@drawable/basic_btn_background" />
    <Button
        android:id="@+id/btnB4"
        android:layout_width="150dp"
        android:layout_height="110dp"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:background="@color/white"/>
</RelativeLayout>
</RelativeLayout>

我是不是忘了做点什么?????????

更新*

错误日志:

12-02 14:32:41.537:D/AndroidRuntime(362):关闭 VM 12-02 14:32:41.537:W/dalvikvm(362):threadid = 1:线程退出 未捕获的异常(组=0x40014760)12-02 14:32:41.588: D/dalvikvm(362):GC_CONCURRENT 释放 76K,3% 释放 6620K/6791K,暂停 7ms+3ms 12-02 14:32:41.588: E/AndroidRuntime(362): 致命异常: 主要 12-02 14:32:41.588: E/AndroidRuntime(362): java.lang.RuntimeException:无法启动活动 组件信息{test.tablet.design/test.tablet.design.MainActivity}: java.lang.NullPointerException 12-02 14:32:41.588: E/AndroidRuntime(362):在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1736) 12-02 14:32:41.588: E/AndroidRuntime(362): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1752) 1> 2-02 14:32:41.588: E/AndroidRuntime(362): 在 android.app.ActivityThread.access$1500(ActivityThread.java:123) 12-02 14:32:41.588:E/AndroidRuntime(362):在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:993) 12-02 14:32:41.588: E/AndroidRuntime(362): 在 android.os.Handler.dispatchMessage(Handler.java:99) 12-02 14:32:41.588:E/AndroidRuntime(362):在 android.os.Looper.loop(Looper.java:126) 12-02 14:32:41.588: E/AndroidRuntime(362):在 android.app.ActivityThread.main(ActivityThread.java:3997) 12-02 14:32:41.588:E/AndroidRuntime(362):在 java.lang.reflect.Method.invokeNative(Native Method) 12-02 14:32:41.588:E/AndroidRuntime(362):在 java.lang.reflect.Method.invoke(Method.java:491) 12-02 14:32:41.588: E/AndroidRuntime(362):在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 12-02 14:32:41.588: E/AndroidRuntime(362): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 12-02 14:32:41.588:E/AndroidRuntime(362):在 dalvik.system.NativeStart.main(本机方法)12-02 14:32:41.588: E/AndroidRuntime(362):引起:java.lang.NullPointerException 12-02 14:32:41.588:E/AndroidRuntime(362):在 test.tablet.design.MainActivity.onCreate(MainActivity.java:31) 12-02 14:32:41.588:E/AndroidRuntime(362):在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048) 12-02 14:32:41.588: E/AndroidRuntime(362): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1700) 12-02 14:32:41.588: E/AndroidRuntime(362): ... 11 更多

良好的布局

<TextView
    android:id="@+id/mainText"
    android:layout_width="1150dp"
    android:layout_height="50dp"
    android:layout_marginLeft="10dp"
    android:layout_marginTop="50dp"
    android:background="@drawable/text_box"
    android:gravity="center_vertical"
    android:paddingLeft="2sp"
    android:text="@string/hello"
    android:textColor="#000"
    android:textSize="38sp" />

<Button
    android:id="@+id/btnClear"
    android:layout_width="100dp"
    android:layout_height="50dp"
    android:layout_alignParentRight="true"
    android:layout_alignTop="@+id/mainText"
    android:layout_marginRight="10dp"
    android:background="@drawable/clear_btn"
    android:onClick="clearbtn"
    android:text="Clear"
    android:textColor="#000"
    android:textSize="24sp" />

<ImageView
    android:id="@+id/ivA1"
    android:layout_width="170dp"
    android:layout_height="130dp"
    android:layout_alignLeft="@+id/mainText"
    android:layout_below="@+id/mainText"
    android:layout_marginLeft="45dp"
    android:layout_marginTop="30dp"
    android:background="@drawable/basic_btn_background" />

<Button
    android:id="@+id/btnA2"
    android:layout_width="170dp"
    android:layout_height="130dp"
    android:layout_alignLeft="@+id/ivA1"
    android:layout_below="@+id/ivA1"
    android:layout_marginTop="20dp"
    android:background="@drawable/basic_btn_background" />

<Button
    android:id="@+id/btnA3"
    android:layout_width="170dp"
    android:layout_height="130dp"
    android:layout_alignLeft="@+id/btnA2"
    android:layout_below="@+id/btnA2"
    android:layout_marginTop="20dp"
    android:background="@drawable/basic_btn_background" />

<Button
    android:id="@+id/btnA4"
    android:layout_width="170dp"
    android:layout_height="130dp"
    android:layout_alignLeft="@+id/btnA3"
    android:layout_below="@+id/btnA3"
    android:layout_marginTop="20dp"
    android:background="@drawable/quick_btn_background" />



<Button
    android:id="@+id/btnB1"
    android:layout_width="170dp"
    android:layout_height="130dp"
    android:layout_alignTop="@+id/ivA1"
    android:layout_marginLeft="30dp"
    android:layout_toRightOf="@+id/ivA1"
    android:background="@drawable/calculator"/>

<Button
    android:id="@+id/btnB2"
    android:layout_width="170dp"
    android:layout_height="130dp"
    android:layout_alignLeft="@+id/btnB1"
    android:layout_alignTop="@+id/btnA2"
    android:background="@drawable/page_btn_background" />

<Button
    android:id="@+id/btnB3"
    android:layout_width="170dp"
    android:layout_height="130dp"
    android:layout_alignLeft="@+id/btnB2"
    android:layout_alignTop="@+id/btnA3"
    android:background="@drawable/page_btn_background" />

<Button
    android:id="@+id/btnB4"
    android:layout_width="170dp"
    android:layout_height="130dp"
    android:layout_alignLeft="@+id/btnB3"
    android:layout_alignTop="@+id/btnA4"
    android:background="@drawable/basic_btn_background" />

<Button
    android:id="@+id/btnC1"
    android:layout_width="170dp"
    android:layout_height="130dp"
    android:layout_alignTop="@+id/btnB1"
    android:layout_marginLeft="30dp"
    android:layout_toRightOf="@+id/btnB1"
    android:background="@drawable/page_btn_background" />

<Button
    android:id="@+id/btnC2"
    android:layout_width="170dp"
    android:layout_height="130dp"
    android:layout_alignLeft="@+id/btnC1"
    android:layout_alignTop="@+id/btnB2"
    android:background="@drawable/basic_btn_background" />

<Button
    android:id="@+id/btnC3"
    android:layout_width="170dp"
    android:layout_height="130dp"
    android:layout_alignLeft="@+id/btnC2"
    android:layout_alignTop="@+id/btnB3"
    android:background="@drawable/quick_btn_background" />

<Button
    android:id="@+id/btnC4"
    android:layout_width="170dp"
    android:layout_height="130dp"
    android:layout_alignLeft="@+id/btnC3"
    android:layout_alignTop="@+id/btnB4"
    android:background="@drawable/basic_btn_background" />
</RelativeLayout>

【问题讨论】:

  • 您忘记发布崩溃时的堆栈跟踪;)
  • 也许工作布局...
  • 从 logcat 复制错误文本,然后将其放入您的问题中。你会得到更好的答案。
  • 贴了Logcat,布局不错

标签: android android-relativelayout


【解决方案1】:

检查 MainActivity.java:31 我认为您正在按名称查找视图,并且您在每个布局中使用不同的 ID。获取 NullPointerException 的任何内容都会为您提供线索。

【讨论】:

  • 感谢您让我找到了问题所在。我忘了添加一些东西。谢谢
猜你喜欢
  • 2023-03-14
  • 2019-12-26
  • 2012-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-31
相关资源
最近更新 更多