0

我已经经历了很多例子,但仍然找不到解决方案。我是 android 开发的新手,所以我在线学习基本教程。每次我在 AVD 上启动应用程序时,它都会显示“不幸的是应用程序已停止”。

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.androidbmi"
        android:versionCode="1"
        android:versionName="1.0" >
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <uses-sdk
            android:minSdkVersion="9"
            android:targetSdkVersion="17" />

        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name="com.example.androidbmi.BMICalculator"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />

                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    <supports-screens android:anyDensity="true"
            android:largeScreens="true"
            android:smallScreens="true" />
    </manifest>

主要的.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/weightLabel"
        android:textAppearance="?android:attr/textAppearanceMedium" />

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

        <requestFocus />
    </EditText>

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/heightLabel"
        android:textAppearance="?android:attr/textAppearanceMedium" />

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

    <Button
        android:id="@+id/calculateButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="calculateClickHandler"
        android:text="@string/calculateButton" />

    <TextView
        android:id="@+id/resultLabel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/emptyString"
        android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>

BMICalculatorActivity.xml

package com.example.androidbmi;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;

import android.widget.EditText;
import android.widget.TextView;

public class BMICalculatorActivity extends Activity {
    /** Called when the activity is first created. */

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }


    public void calculateClickHandler(View view) {
     // make sure we handle the click of the calculator button

     if (view.getId() == R.id.calculateButton) {

      // get the references to the widgets
      EditText weightText = (EditText)findViewById(R.id.weightText);
      EditText heightText = (EditText)findViewById(R.id.heightText);
      TextView resultText = (TextView)findViewById(R.id.resultLabel);

      // get the users values from the widget references

      float weight = Float.parseFloat(weightText.getText().toString());
      float height = Float.parseFloat(heightText.getText().toString());

      // calculate the bmi value

      float bmiValue = calculateBMI(weight, height);

      // interpret the meaning of the bmi value
      String bmiInterpretation = interpretBMI(bmiValue);

      // now set the value in the result text

      resultText.setText(bmiValue + "-" + bmiInterpretation);
     }
    }

    // the formula to calculate the BMI index

    // check for http://en.wikipedia.org/wiki/Body_mass_index
    private float calculateBMI (float weight, float height) {

     return (float) (weight * 4.88 / (height * height));
    }


    // interpret what BMI means
    private  String interpretBMI(float bmiValue) {

     if (bmiValue < 16) {
      return "Severely underweight";
     } else if (bmiValue < 18.5) {

      return "Underweight";
     } else if (bmiValue < 25) {

      return "Normal";
     } else if (bmiValue < 30) {

      return "Overweight";
     } else {
      return "Obese";
     }

    }
}

我的 AVD 是带有 Android 4.2.2 的 Nexus S 请帮助大家,这让我发疯

4

2 回答 2

0

活动名称错误。

<?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.androidbmi"
        android:versionCode="1"
        android:versionName="1.0" >
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <uses-sdk
            android:minSdkVersion="9"
            android:targetSdkVersion="17" />

        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name="com.example.androidbmi.BMICalculatorActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />

                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    <supports-screens android:anyDensity="true"
            android:largeScreens="true"
            android:smallScreens="true" />
    </manifest>
于 2013-04-11T11:50:45.863 回答
0

在您的活动清单文件中定义正确的名称。

      <activity
            android:name="com.example.androidbmi.BMICalculatorActivity"
            android:label="@string/app_name" >
于 2013-04-11T11:58:51.407 回答