不幸的是HelloWorld停止了(我的应用停止在模拟器上:不幸的是)

时间:2013-05-06 12:01:11

标签: java android

我是一个初学的android开发人员,但是一个优秀的Java J2SE Developer。我只是想知道,当我在第一个Android应用程序上工作时:在编译它并且没有错误时遇到在模拟器中运行它的问题! 我的java类代码是: package com.example.helloworld;

 import android.os.Bundle;
 import android.app.Activity;
 import android.view.Menu;
 import android.widget.Button;

public class MainActivity extends Activity {

//Variables Declaration
private Button one;
private Button two;
private Button three;
private Button four;
private Button five;
private Button six;
private Button seven;
private Button eight;
private Button nine;
private Button plus;
private Button minus;
private Button divide;
private Button multiply;
private Button zero;
private Button dot;
private Button equal;
private Button clr;
//End of Variables Declaration

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);
    addListenerOnButton();



}

public void addListenerOnButton(){
    one=(Button) this.findViewById(R.id.button1);
    two=(Button) this.findViewById(R.id.button2);
    three=(Button) this.findViewById(R.id.button3);
    four=(Button) this.findViewById(R.id.button4);
    five=(Button) this.findViewById(R.id.button5);
    six=(Button) this.findViewById(R.id.button6);
    seven=(Button) this.findViewById(R.id.button7);
    eight=(Button) this.findViewById(R.id.button8);
    nine=(Button) this.findViewById(R.id.button9);
    zero=(Button) this. findViewById(R.id.button14);
    dot=(Button) this.findViewById(R.id.button15);
    plus=(Button) this.findViewById(R.id.button13);
    equal=(Button) this.findViewById(R.id.button16);
    clr=(Button) this.findViewById(R.id.button17);
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}


 }

.xml是:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@style/AppBaseTheme"
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=".MainActivity" >

<LinearLayout
    android:id="@+id/lay"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/numf2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/opf"
        android:layout_width="290dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:ems="10"
        android:inputType="numberDecimal|text" />

    <EditText
        android:id="@+id/numf1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="26dp"
        android:ems="10"
        android:inputType="numberDecimal" >

        <requestFocus />
    </EditText>
</LinearLayout>

<Button
    android:id="@+id/button2"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignTop="@+id/button1"
    android:layout_toRightOf="@+id/button1"
    android:text="2"
     />

<Button
    android:id="@+id/button3"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/button2"
    android:layout_alignBottom="@+id/button2"
    android:layout_toRightOf="@+id/button2"
    android:text="3"
     />

<Button
    android:id="@+id/button4"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/button1"
    android:layout_alignLeft="@+id/button1"
    android:text="4" 
    />

<Button
    android:id="@+id/button5"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/button4"
    android:layout_alignBottom="@+id/button4"
    android:layout_toLeftOf="@+id/button3"
    android:text="5"
     />

<Button
    android:id="@+id/button6"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/button5"
    android:layout_alignBottom="@+id/button5"
    android:layout_alignLeft="@+id/button3"
    android:text="6"
     />

<Button
    android:id="@+id/button7"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/button4"
    android:layout_alignLeft="@+id/button4"
    android:text="7" 
    />

<Button
    android:id="@+id/button8"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/button5"
    android:layout_alignLeft="@+id/button5"
    android:text="8"
     />

<Button
    android:id="@+id/button9"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/button6"
    android:layout_alignLeft="@+id/button6"
    android:text="9"
     />

<Button
    android:id="@+id/button10"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignTop="@+id/button9"
    android:layout_toRightOf="@+id/button6"
    android:text="Button" />

<Button
    android:id="@+id/button11"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignRight="@+id/button10"
    android:layout_alignTop="@+id/button6"
    android:text="Button" />

<Button
    android:id="@+id/button12"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/button11"
    android:layout_below="@+id/button11"
    android:text="Button" />

<Button
    android:id="@+id/button13"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/button12"
    android:layout_alignParentBottom="true"
    android:layout_alignRight="@+id/button12"
    android:text="+" />

<Button
    android:id="@+id/button1"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/button13"
    android:layout_alignLeft="@+id/lay"
    android:text="1" />

<Button
    android:id="@+id/button14"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/button13"
    android:layout_alignBottom="@+id/button13"
    android:layout_alignLeft="@+id/button1"
    android:layout_alignRight="@+id/button2"
    android:text="0" />

<Button
    android:id="@+id/button15"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/button3"
    android:layout_alignRight="@+id/button3"
    android:layout_alignTop="@+id/button13"
    android:text="dot" />

<Button
    android:id="@+id/button16"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/button13"
    android:layout_alignBottom="@+id/button13"
    android:layout_alignRight="@+id/lay"
    android:layout_toRightOf="@+id/button12"
    android:text="=" />

<Button
    android:id="@+id/button17"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/button16"
    android:layout_alignRight="@+id/lay"
    android:layout_alignTop="@+id/button10"
    android:text="CLR" />

 </RelativeLayout>

请帮助我,我已经搜索了很多,但没有找到任何解决方案我的应用程序根本没有开始,不幸的是它停止了。提前致谢

1 个答案:

答案 0 :(得分:1)

我在快速测试项目中测试了您的代码( XML以及Java )。它崩溃了。显然,布局不喜欢其中设置的android:background属性。

从父RelativeLayout中删除此行将修复它:

android:background="@style/AppBaseTheme"

在我的设备上进行测试:

enter image description here

最终的父RelativeLayout会看到这个:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/rel"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    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=".MainActivity" >

    ....

    ....

</RelativeLayout>

至于为什么它不喜欢该属性是因为它映射到名为styles.xml的{​​{1}}中的样式。AppBaseTheme。如果您使用 Android应用程序项目向导创建项目,就像我一样,我注意到它创建了一个空白 styles.xml,其中包含:

<resources>

    <!--
        Base application theme, dependent on API level. This theme is replaced
        by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
    -->
    <style name="AppBaseTheme" parent="android:Theme.Light">
        <!--
            Theme customizations available in newer API levels can go in
            res/values-vXX/styles.xml, while customizations related to
            backward-compatibility can go here.
        -->
    </style>

    <!-- Application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">
        <!-- All customizations that are NOT specific to a particular API-level can go here. -->
    </style>

</resources>

当然,属性android:background="@style/AppBaseTheme"没有必要为RelativeLayout提供与android:background属性兼容的资源。