我的android应用程序一直强制关闭

我的android应用程序一直强制关闭,android,Android,我在eclipse中的代码本身不包含任何错误,但是当我在设备上运行它时,它会说:“不幸的是,SMSFree已经停止了。” 这是我的日志猫的副本: 07-04 10:57:11.773: E/AndroidRuntime(17647): Caused by: java.lang.NullPointerException 这是我的源代码副本: package com.johnnydicamillo.freesms; import android.app.Activity; import andr

我在eclipse中的代码本身不包含任何错误,但是当我在设备上运行它时,它会说:“不幸的是,SMSFree已经停止了。”

这是我的日志猫的副本:

07-04 10:57:11.773: E/AndroidRuntime(17647): Caused by: java.lang.NullPointerException
这是我的源代码副本:

package com.johnnydicamillo.freesms;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebView;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;

public class SMSFreeActivity extends Activity implements
        OnItemSelectedListener, OnClickListener {
    /** Called when the activity is first created. */
    Button send;
    EditText message, number;
    WebView wv;
    Spinner spinner;
    String[] carriers = { "Sprint", "Verizon", "AT&T", "Boost", "T-Mobile" };
    String carrierAddy;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    send = (Button) findViewById(R.id.bSend);
    message = (EditText) findViewById(R.id.etMessage);
    number = (EditText) findViewById(R.id.etNumber);
    wv = (WebView) findViewById(R.id.wvGmail);
    wv.getSettings().setJavaScriptEnabled(true);
    wv.getSettings().setLoadWithOverviewMode(true);
    wv.getSettings().setUseWideViewPort(true);
    wv.getSettings().setBuiltInZoomControls(true);
    send.setOnClickListener(this);
    try {
        wv.loadUrl("http://www.gmail.com");
    } catch (Exception e) {
        e.printStackTrace();
    }
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(
            SMSFreeActivity.this, android.R.layout.simple_spinner_item,
            carriers);
    spinner.setAdapter(adapter);
    spinner.setOnItemSelectedListener(this);
}

public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
        long arg3) {
    // TODO Auto-generated method stub
    int position = spinner.getSelectedItemPosition();
    switch (position) {
    case 0:
        carrierAddy = "@messaging.sprintpcs.com";
        break;
    case 1:
        carrierAddy = "@vtext.com";
        break;
    case 2:
        carrierAddy = "@txt.att.net";
        break;
    case 3:
        carrierAddy = "@myboostmobile.com";
        break;
    case 4:
        carrierAddy = "@tmomail.net";
        break;
    }
}

public void onNothingSelected(AdapterView<?> arg0) {
    // TODO Auto-generated method stub

}

public void onClick(View v) {
    // TODO Auto-generated method stub

    }
}
package com.johnnydicamillo.freems;
导入android.app.Activity;
导入android.os.Bundle;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.webkit.WebView;
导入android.widget.AdapterView;
导入android.widget.AdapterView.OnItemSelectedListener;
导入android.widget.ArrayAdapter;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.Spinner;
公共类SMSFreeActivity扩展了活动实现
OnItemSelectedListener,OnClickListener{
/**在首次创建活动时调用*/
按钮发送;
编辑短信,号码;
网络视图;
纺纱机;
String[]运营商={“Sprint”、“Verizon”、“AT&T”、“Boost”、“T-Mobile”};
弦载波频率;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
发送=(按钮)findViewById(R.id.bSend);
message=(EditText)findViewById(R.id.etMessage);
number=(EditText)findViewById(R.id.etNumber);
wv=(WebView)findviewbyd(R.id.wvGmail);
wv.getSettings().setJavaScriptEnabled(true);
wv.getSettings().setLoadWithOverview模式(true);
wv.getSettings().setUseWideViewPort(true);
wv.getSettings().SetBuilTinZoomControl(true);
send.setOnClickListener(this);
试一试{
wv.loadUrl(“http://www.gmail.com");
}捕获(例外e){
e、 printStackTrace();
}
ArrayAdapter适配器=新的ArrayAdapter(
SMSFreeActivity.this,android.R.layout.simple\u微调器\u项,
承运人);
旋转器。设置适配器(适配器);
spinner.setOnItemSelectedListener(此);
}
已选择公共视图(适配器视图arg0、视图arg1、内部arg2、,
长arg3){
//TODO自动生成的方法存根
int position=spinner.getSelectedItemPosition();
开关(位置){
案例0:
carrierady=“@messaging.sprintpcs.com”;
打破
案例1:
carrierady=“@vtext.com”;
打破
案例2:
carrierady=“@txt.att.net”;
打破
案例3:
carrierady=“@myboostmobile.com”;
打破
案例4:
carrierady=“@tmomail.net”;
打破
}
}
未选择公共无效(AdapterView arg0){
//TODO自动生成的方法存根
}
公共void onClick(视图v){
//TODO自动生成的方法存根
}
}

我假设没有人会出于尊重而窃取这段代码。谢谢你们的帮助。我开始学习android developer。

我不知道在onCreate()中定义
微调器的位置。你需要像这样的东西

spinner = (Spinner) findViewById(R.id.spinner);
之前:

spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(this);

抛出的是哪一行?一个建议是,使用logcat,它将锁定抛出异常的代码行。使用stackoverflow在没有logcat的情况下检查代码的NullPointerException是浪费时间的。@Siddharth所说的是100%正确的!这适用于其他夜间飞行用户XXXXX注册,希望我们是解决您问题的灵丹妙药。请允许我提醒op和其他潜在的夜间飞行者阅读本文,不是为了我们,而是为了你自己:)我不是很苛刻-这是StackOverflow:)对不起,我以为我添加了日志猫。我对这个程序还是一个新手。“我假设没有人会仅仅出于尊重而窃取这个代码。”-在这里发布这个,你已经同意授权它了。因此,如果有人使用它(在许可证规定的条款范围内),就不会被视为“偷窃”@user1502224,很高兴我能帮上忙。请单击此答案左上角的复选标记以结束问题。