我今天開始爲android編程一個基本的溫度轉換應用程序(仍然是初學者),而且我似乎正在得到NullPointerException,我無法弄清楚是什麼導致了它。我試過註釋掉可能導致錯誤的代碼部分,但沒有運氣。當我在Android設備上通過ADB運行應用程序時,應用程序在啓動時崩潰。空指針異常 - Android
這是一個正在進行的工作,所以請忽略任何未完成的部分(除非這是導致問題的原因)。下面是代碼:
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.Toast;
public class MainActivity extends Activity {
private String array_spinner1[];
private String array_spinner2[];
private EditText input1;
private EditText input2;
Spinner topSpinner;
Spinner bottomSpinner;
String topSpinnerVal;
String bottomSpinnerVal;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
topSpinner = (Spinner) findViewById(R.id.input1Sp);
bottomSpinner = (Spinner) findViewById(R.id.input2Sp);
topSpinnerVal = topSpinner.getSelectedItem().toString();
bottomSpinnerVal = bottomSpinner.getSelectedItem().toString();
array_spinner1=new String[3];
array_spinner1[0]="Celsius";
array_spinner1[1]="Fahrenheit";
array_spinner1[2]="Kelvin";
array_spinner2=new String[3];
array_spinner2[0]="Celsius";
array_spinner2[1]="Fahrenheit";
array_spinner2[2]="Kelvin";
ArrayAdapter adapter1 = new ArrayAdapter(this,
android.R.layout.simple_spinner_item, array_spinner1);
ArrayAdapter adapter2 = new ArrayAdapter(this,
android.R.layout.simple_spinner_item, array_spinner2);
topSpinner.setAdapter(adapter1);
bottomSpinner.setAdapter(adapter2);
input1 = (EditText) findViewById(R.id.input1TB);
input1 = (EditText) findViewById(R.id.input2TB);
}
public void onClick(View button) {
Double valTop = Double.parseDouble(input1.getText().toString());
Double valBottom = Double.parseDouble(input2.getText().toString());
switch (button.getId()) {
case R.id.topToBottomBt:
if (input1.getText().length() == 0){
Toast.makeText(this, "Requested conversion is empty", Toast.LENGTH_LONG).show();
return;
}
if (topSpinnerVal.equals("Celsius")) {
if (bottomSpinnerVal.equals("Celsius")) {
}
}
case R.id.bottomToTopBt:
}
}
@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;
}
}
的logcat的日誌在Eclipse中說以下內容:
所有這裏面onCreate
後
01-05 00:01:18.687: D/AndroidRuntime(22472): Shutting down VM
01-05 00:01:18.687: W/dalvikvm(22472): threadid=1: thread exiting with uncaught exception (group=0x41e23700)
01-05 00:01:18.687: E/AndroidRuntime(22472): FATAL EXCEPTION: main
01-05 00:01:18.687: E/AndroidRuntime(22472): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tumblr.nocturnalparasites.temperatureconversion/com.tumblr.nocturnalparasites.temperatureconversion.MainActivity}: java.lang.NullPointerException
01-05 00:01:18.687: E/AndroidRuntime(22472): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2339)
01-05 00:01:18.687: E/AndroidRuntime(22472): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2389)
01-05 00:01:18.687: E/AndroidRuntime(22472): at android.app.ActivityThread.access$600(ActivityThread.java:153)
01-05 00:01:18.687: E/AndroidRuntime(22472): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1269)
01-05 00:01:18.687: E/AndroidRuntime(22472): at android.os.Handler.dispatchMessage(Handler.java:99)
01-05 00:01:18.687: E/AndroidRuntime(22472): at android.os.Looper.loop(Looper.java:137)
01-05 00:01:18.687: E/AndroidRuntime(22472): at android.app.ActivityThread.main(ActivityThread.java:5287)
01-05 00:01:18.687: E/AndroidRuntime(22472): at java.lang.reflect.Method.invokeNative(Native Method)
01-05 00:01:18.687: E/AndroidRuntime(22472): at java.lang.reflect.Method.invoke(Method.java:525)
01-05 00:01:18.687: E/AndroidRuntime(22472): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:738)
01-05 00:01:18.687: E/AndroidRuntime(22472): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554)
01-05 00:01:18.687: E/AndroidRuntime(22472): at dalvik.system.NativeStart.main(Native Method)
01-05 00:01:18.687: E/AndroidRuntime(22472): Caused by: java.lang.NullPointerException
01-05 00:01:18.687: E/AndroidRuntime(22472): at com.tumblr.nocturnalparasites.temperatureconversion.MainActivity.onCreate(MainActivity.java:30)
01-05 00:01:18.687: E/AndroidRuntime(22472): at android.app.Activity.performCreate(Activity.java:5201)
01-05 00:01:18.687: E/AndroidRuntime(22472): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
01-05 00:01:18.687: E/AndroidRuntime(22472): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2293)
01-05 00:01:18.687: E/AndroidRuntime(22472): ... 11 more
並在此之後*它會告訴你到底是什麼問題。 –
請發佈COMPLETE LogCat輸出。 –
@BrianRoach它在任何地方都沒有行號。 –