【问题标题】:android app crashed because of xmlandroid应用程序因xml而崩溃
【发布时间】:2014-06-07 15:57:55
【问题描述】:

我做错了什么?

<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:background="@drawable/main_background"
tools:context="${packageName}.${activityClass}" >

<TextView
    android:id="@+id/text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

<TextView
    android:id="@+id/text1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/text" />

<TextView
    android:id="@+id/text2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/text1" />

<TextView
    android:id="@+id/text3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/text2" />

<ImageView
    android:id="@+id/element1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="10dp"
    android:background="@drawable/kolo_1" />

<ImageView
    android:id="@+id/element2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="10dp"
    android:background="@drawable/trojkat_1" />

<ImageView
    android:id="@+id/element3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="10dp"
    android:background="@drawable/kwadrat_1" />

<ImageView
    android:id="@+id/element4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="10dp"
    android:background="@drawable/wielokat_1" />

<ImageView
    android:id="@+id/element5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="10dp"
    android:background="@drawable/gwiazdka_1" />

<ImageView
    android:id="@+id/element6"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="10dp"
    android:background="@drawable/romb_1" />

<Button
    android:id="@+id/buttonstart"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/linear1"
    android:layout_marginBottom="30dp"
    android:text="@string/play"
    android:textColor="#efefef"
    android:textSize="15sp" />

<LinearLayout
    android:id="@+id/linear1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/linear2"
    android:layout_marginBottom="2dp"
    android:layout_weight="1"
    android:orientation="horizontal" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="1dp"
        android:layout_marginRight="2dp"
        android:layout_weight="1"
        android:background="@drawable/kolo_1"
        android:onClick="button1" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="2dp"
        android:layout_weight="1"
        android:background="@drawable/trojkat_1"
        android:onClick="button2" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="1dp"
        android:layout_weight="1"
        android:background="@drawable/kwadrat_1"
        android:onClick="button3" />
</LinearLayout>

<LinearLayout
    android:id="@+id/linear2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_weight="1"
    android:orientation="horizontal" >

    <Button
        android:id="@+id/button4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="1dp"
        android:layout_marginRight="2dp"
        android:layout_weight="1"
        android:background="@drawable/wielokat_1"
        android:onClick="button4" />

    <Button
        android:id="@+id/button5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="2dp"
        android:layout_weight="1"
        android:background="@drawable/gwiazdka_1"
        android:onClick="button5" />

    <Button
        android:id="@+id/button6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="1dp"
        android:layout_weight="1"
        android:background="@drawable/romb_1"
        android:onClick="button6" />
</LinearLayout>

06-07 15:55:25.669: D/libEGL(1642): loaded /system/lib/egl/libGLES_android.so
06-07 15:55:25.679: D/libEGL(1642): loaded /system/lib/egl/libEGL_adreno200.so
06-07 15:55:25.689: D/libEGL(1642): loaded /system/lib/egl/libGLESv1_CM_adreno200.so
06-07 15:55:25.689: D/libEGL(1642): loaded /system/lib/egl/libGLESv2_adreno200.so
06-07 15:55:25.759: D/OpenGLRenderer(1642): Enabling debug mode 0
06-07 15:55:31.349: D/AndroidRuntime(1642): Shutting down VM
06-07 15:55:31.349: W/dalvikvm(1642): threadid=1: thread exiting with uncaught exception (group=0x40a4a1f8)
06-07 15:55:31.359: E/AndroidRuntime(1642): FATAL EXCEPTION: main
06-07 15:55:31.359: E/AndroidRuntime(1642): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.arsoft.shootandremember/com.arsoft.shootandremember.Remember}: java.lang.ClassCastException: android.widget.Button cannot be cast to android.widget.ImageButton
06-07 15:55:31.359: E/AndroidRuntime(1642):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2079)
06-07 15:55:31.359: E/AndroidRuntime(1642):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2104)
06-07 15:55:31.359: E/AndroidRuntime(1642):     at android.app.ActivityThread.access$600(ActivityThread.java:132)
06-07 15:55:31.359: E/AndroidRuntime(1642):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1157)
06-07 15:55:31.359: E/AndroidRuntime(1642):     at android.os.Handler.dispatchMessage(Handler.java:99)
06-07 15:55:31.359: E/AndroidRuntime(1642):     at android.os.Looper.loop(Looper.java:137)
06-07 15:55:31.359: E/AndroidRuntime(1642):     at android.app.ActivityThread.main(ActivityThread.java:4575)
06-07 15:55:31.359: E/AndroidRuntime(1642):     at java.lang.reflect.Method.invokeNative(Native Method)
06-07 15:55:31.359: E/AndroidRuntime(1642):     at java.lang.reflect.Method.invoke(Method.java:511)
06-07 15:55:31.359: E/AndroidRuntime(1642):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
06-07 15:55:31.359: E/AndroidRuntime(1642):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
06-07 15:55:31.359: E/AndroidRuntime(1642):     at dalvik.system.NativeStart.main(Native Method)
06-07 15:55:31.359: E/AndroidRuntime(1642): Caused by: java.lang.ClassCastException: android.widget.Button cannot be cast to android.widget.ImageButton
06-07 15:55:31.359: E/AndroidRuntime(1642):     at com.arsoft.shootandremember.Remember.onCreate(Remember.java:79)
06-07 15:55:31.359: E/AndroidRuntime(1642):     at android.app.Activity.performCreate(Activity.java:4465)
06-07 15:55:31.359: E/AndroidRuntime(1642):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
06-07 15:55:31.359: E/AndroidRuntime(1642):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2033)
06-07 15:55:31.359: E/AndroidRuntime(1642):     ... 11 more
06-07 15:55:32.649: I/Process(1642): Sending signal. PID: 1642 SIG: 9

【问题讨论】:

    标签: android xml button


    【解决方案1】:

    看看这一行:

    Caused by: java.lang.ClassCastException: android.widget.Button cannot be cast to android.widget.ImageButton
    

    猜测:您声明了一个 ImageButton,然后尝试在 onCreate 方法中将其分配给 Button
    您的布局中没有 ImageButtons

    【讨论】:

      【解决方案2】:

      我认为你只需要清理你的项目然后运行。还有 tools:context="${packageName}.${activityClass} 这行没有必要。

      【讨论】:

        【解决方案3】:

        您的 logcat 说您的类型转换错误。您正在尝试将按钮转换为 imagebutton:

        错误:

        Button _button = (ImageButton) findViewById(R.id.yourbuttonid);
        

        正确:

        Button _button = (Button) findViewById(R.id.yourbuttonid);
        

        【讨论】:

        • 同样错误:ImageButton _imgbutton = (ImageButton) findViewById(R.id.yourbuttonid); 当您指向按钮时(本例中为 R.id.yourbuttonid)。
        【解决方案4】:

        看起来您正试图在 OnCreate 方法中将您的 (Button) 之一转换为 (ImageButton)。

        1. 在您的 xml 中将 (Button) 更改为 (ImageButton) 或...
        2. 在 OnCreate 方法中将 (Button) 转换为常规 (Button)

        希望对你有帮助

        【讨论】:

          猜你喜欢
          • 2017-10-16
          • 1970-01-01
          • 2014-10-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-14
          • 2019-12-26
          • 2012-05-28
          相关资源
          最近更新 更多