LogCat中的错误运行停止的应用程序 - $ C $下加入 [英] LogCat errors stopping application from running - Code added

查看:466
本文介绍了LogCat中的错误运行停止的应用程序 - $ C $下加入的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有麻烦,我的应用程序尝试使用下面的类,请参阅LogCat中和.java类时。任何人都能够解释和诊断呢?

AddActivity.java

  02-16 14:17:52.046 1896年至1896年/ com.example.student.neillapp E / AndroidRuntime:致命异常:主要
    工艺:com.example.student.neillapp,PID:1896
    了java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.student.neillapp / com.example.student.neillapp.AddActivity}:显示java.lang.NullPointerException:尝试调用虚拟方法无效android.widget.Spinner。 setAdapter(android.widget.SpinnerAdapter)对空对象引用
            在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
            在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
            在android.app.ActivityThread.access $ 800(ActivityThread.java:144)
            在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1278)
            在android.os.Handler.dispatchMessage(Handler.java:102)
            在android.os.Looper.loop(Looper.java:135)
            在android.app.ActivityThread.main(ActivityThread.java:5221)
            在java.lang.reflect.Method.invoke(本机方法)
            在java.lang.reflect.Method.invoke(Method.java:372)
            在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:899)
            在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
     显示java.lang.NullPointerException:引起尝试在空对象引用调用虚拟方法无效android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)'
            在com.example.student.neillapp.AddActivity.chooseCategory(AddActivity.java:39)
            在com.example.student.neillapp.AddActivity.onCreate(AddActivity.java:26)
            在android.app.Activity.performCreate(Activity.java:5933)
            在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
            在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
            在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
            在android.app.ActivityThread.access $ 800(ActivityThread.java:144)
            在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1278)
            在android.os.Handler.dispatchMessage(Handler.java:102)
            在android.os.Looper.loop(Looper.java:135)
            在android.app.ActivityThread.main(ActivityThread.java:5221)
            在java.lang.reflect.Method.invoke(本机方法)
            在java.lang.reflect.Method.invoke(Method.java:372)
            在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:899)
            在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

这是与相关目录下载java文件

 公共类AddActivity扩展活动实现OnClickListener,OnItemSelectedListener {@覆盖
公共无效的onCreate(捆绑savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.activity_main);    spinner1 =(微调)this.findViewById(R.id.spinner01);
    spinner2 =(微调)this.findViewById(R.id.spinner02);    chooseCategory();
    chooseBreakfast();
    chooseLunch();
    chooseDinner();
    chooseSnack();}
静态微调spinner1,spinner2 = NULL;公共无效chooseCategory(){    ArrayAdapter<&CharSequence的GT; catAdapter = ArrayAdapter.createFromResource(这一点,R.array.foodtype,android.R.layout.simple_spinner_item);
    catAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner1.setAdapter(catAdapter);
    spinner1.setOnItemSelectedListener(新planOnSelectedListener());
}公共无效chooseBreakfast(){    ArrayAdapter<食品及GT; planAdapter1 =新ArrayAdapter<>(这一点,
            android.R.layout.simple_spinner_item,新的食品[] {
            新食品(1,面包),
            新食品(99,谷物),
            新食品(53,果),
            新食品(153,酸奶)
    });    spinner2.setAdapter(planAdapter1);
    spinner2.setOnItemSelectedListener(本);
    Button按钮=(按钮)this.findViewById(R.id.button01);
    button.setOnClickListener(本);
}
公共无效chooseLunch(){
    ArrayAdapter<食品及GT; planAdapter2 =新ArrayAdapter<>(这一点,
            android.R.layout.simple_spinner_item,新的食品[] {
            新食品(1,三明治),
            新食品(99,总结),
            新食品(53色拉),
    });    spinner2.setAdapter(planAdapter2);
    //告诉微调当一个项目更改做什么
    spinner2.setOnItemSelectedListener(本);
    //找到我们的按钮和钩了点击程序
    Button按钮=(按钮)this.findViewById(R.id.button01);
    button.setOnClickListener(本);
}公共无效chooseDinner(){
    ArrayAdapter<食品及GT; planAdapter2 =新ArrayAdapter<>(这一点,
            android.R.layout.simple_spinner_item,新的食品[] {
            新食品(1,比萨),
            新食品(99,意大利面),
            新食品(53,鱼和薯条),
    });    spinner2.setAdapter(planAdapter2);
    //告诉微调当一个项目更改做什么
    spinner2.setOnItemSelectedListener(本);
    //找到我们的按钮和钩了点击程序
    Button按钮=(按钮)this.findViewById(R.id.button01);
    button.setOnClickListener(本);
}公共无效chooseSnack(){
    ArrayAdapter<食品及GT; planAdapter2 =新ArrayAdapter<>(这一点,
            android.R.layout.simple_spinner_item,新的食品[] {
            新食品(1,薯片),
            新食品(99,巧克力),
            新食品(53,甜甜圈),
    });    spinner2.setAdapter(planAdapter2);
    //告诉微调当一个项目更改做什么
    spinner2.setOnItemSelectedListener(本);
    //找到我们的按钮和钩了点击程序
    Button按钮=(按钮)this.findViewById(R.id.button01);
    button.setOnClickListener(本);
}公共无效toastState(字符串preFIX,食品CL){
    如果(CL!= NULL){
        desc字符串=事件:+ preFIX +\\ n名称:+ cl.name;
        说明+ =\\ nCalorie:+将String.valueOf(cl.calories);
        Toast.makeText(getApplicationContext(),递减,Toast.LENGTH_SHORT).show();
    }
}公共无效calorieState(食品CL){        TextView的textView3 =(的TextView)findViewById(R.id.textView3);
        textView3.setText(将String.valueOf(项目卡路里:+ cl.getCalorie()));}公共类planOnSelectedListener实现OnItemSelectedListener {    @覆盖
    公共无效onItemSelected(适配器视图<>母公司,视图V,INT POS,长I​​D){
        parent.getItemAtPosition(POS)        如果(POS == 0){
            chooseBreakfast();
        }否则如果(POS == 1){
            chooseLunch();
        }否则如果(POS == 2){
            chooseDinner();
        }否则如果(POS == 3){
            chooseSnack();
        }
    }    @覆盖
    公共无效onNothingSelected(适配器视图<>为arg0){
        // TODO自动生成方法存根    }
}
公共无效onItemSelected(适配器视图<>母公司,观景,INT位置,长的id){
    //从微调获取当前选定的对象国
    食品ST =(食品)spinner2.getSelectedItem();    //通过举杯显示它
    toastState(onItemSelected,ST);
}公共无效onNothingSelected(适配器视图<>母公司){
}
公共无效的onClick(视图v){
    //从微调获取当前选定的对象国
    食品ST =(食品)spinner2.getSelectedItem();    //通过举杯显示它
    toastState(onclick事件,ST);
    calorieState(ST);


解决方案

 公共无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.activity_main);

 公共无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.activity_add);

Having trouble with my application when attempting to use the class below, see LogCat and .Java class. Anyone able to explain and diagnose this?

AddActivity.java

02-16 14:17:52.046    1896-1896/com.example.student.neillapp E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.example.student.neillapp, PID: 1896
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.student.neillapp/com.example.student.neillapp.AddActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)' on a null object reference
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
            at android.app.ActivityThread.access$800(ActivityThread.java:144)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)' on a null object reference
            at com.example.student.neillapp.AddActivity.chooseCategory(AddActivity.java:39)
            at com.example.student.neillapp.AddActivity.onCreate(AddActivity.java:26)
            at android.app.Activity.performCreate(Activity.java:5933)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
            at android.app.ActivityThread.access$800(ActivityThread.java:144)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

This is the java file associated with the CatLog

public class AddActivity extends Activity implements OnClickListener, OnItemSelectedListener {

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

    spinner1 = (Spinner) this.findViewById(R.id.spinner01);
    spinner2 = (Spinner) this.findViewById(R.id.spinner02);

    chooseCategory();
    chooseBreakfast();
    chooseLunch();
    chooseDinner();
    chooseSnack();

}
static Spinner spinner1, spinner2 = null;

public void chooseCategory() {

    ArrayAdapter<CharSequence> catAdapter = ArrayAdapter.createFromResource(this, R.array.foodtype, android.R.layout.simple_spinner_item);
    catAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner1.setAdapter(catAdapter);
    spinner1.setOnItemSelectedListener(new planOnSelectedListener());
}

public void chooseBreakfast() {

    ArrayAdapter<Food> planAdapter1 = new ArrayAdapter<>(this,
            android.R.layout.simple_spinner_item, new Food[]{
            new Food(1, "Toast"),
            new Food(99, "Cereal"),
            new Food(53, "Fruit"),
            new Food(153, "Yogurt")
    });

    spinner2.setAdapter(planAdapter1);
    spinner2.setOnItemSelectedListener(this);
    Button button = (Button) this.findViewById(R.id.button01);
    button.setOnClickListener(this);
}


public void chooseLunch() {
    ArrayAdapter<Food> planAdapter2 = new ArrayAdapter<>(this,
            android.R.layout.simple_spinner_item, new Food[]{
            new Food(1, "Sandwich"),
            new Food(99, "Wrap"),
            new Food(53, "Salad"),
    });

    spinner2.setAdapter(planAdapter2);
    // Tell the spinner what to do when an item is changed
    spinner2.setOnItemSelectedListener(this);
    // Find our button and hook-up the click routine
    Button button = (Button) this.findViewById(R.id.button01);
    button.setOnClickListener(this);
}

public void chooseDinner() {
    ArrayAdapter<Food> planAdapter2 = new ArrayAdapter<>(this,
            android.R.layout.simple_spinner_item, new Food[]{
            new Food(1, "Pizza"),
            new Food(99, "Pasta"),
            new Food(53, "Fish and Chips"),
    });

    spinner2.setAdapter(planAdapter2);
    // Tell the spinner what to do when an item is changed
    spinner2.setOnItemSelectedListener(this);
    // Find our button and hook-up the click routine
    Button button = (Button) this.findViewById(R.id.button01);
    button.setOnClickListener(this);
}

public void chooseSnack() {
    ArrayAdapter<Food> planAdapter2 = new ArrayAdapter<>(this,
            android.R.layout.simple_spinner_item, new Food[]{
            new Food(1, "Crisps"),
            new Food(99, "Chocolate"),
            new Food(53, "Donut"),
    });

    spinner2.setAdapter(planAdapter2);
    // Tell the spinner what to do when an item is changed
    spinner2.setOnItemSelectedListener(this);
    // Find our button and hook-up the click routine
    Button button = (Button) this.findViewById(R.id.button01);
    button.setOnClickListener(this);
}

public void toastState(String prefix, Food cl) {
    if (cl != null) {
        String desc = "Event: " + prefix + "\nName: " + cl.name;
        desc += "\nCalorie: " + String.valueOf(cl.calories);
        Toast.makeText(getApplicationContext(), desc, Toast.LENGTH_SHORT).show();
    }
}

public void calorieState (Food cl){

        TextView textView3 = (TextView) findViewById(R.id.textView3);
        textView3.setText(String.valueOf("Item Calories: " + cl.getCalorie()));

}

public class planOnSelectedListener implements OnItemSelectedListener {

    @Override
    public void onItemSelected(AdapterView<?> parent, View v, int pos, long id) {
        parent.getItemAtPosition(pos);

        if (pos == 0) {
            chooseBreakfast();
        } else if (pos == 1) {
            chooseLunch();
        } else if (pos == 2) {
            chooseDinner();
        } else if (pos == 3) {
            chooseSnack();
        }
    }

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

    }
}


public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    // Get the currently selected State object from the spinner
    Food st = (Food) spinner2.getSelectedItem();

    // Show it via a toast
    toastState("onItemSelected", st);
}

public void onNothingSelected(AdapterView<?> parent) {
}


public void onClick(View v){
    // Get the currently selected State object from the spinner
    Food st = (Food) spinner2.getSelectedItem();

    // Show it via a toast
    toastState("onClick", st);
    calorieState(st);

解决方案

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Should be

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add);

这篇关于LogCat中的错误运行停止的应用程序 - $ C $下加入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆