LogCat中的错误运行停止的应用程序 - $ C $下加入 [英] LogCat errors stopping application from running - Code added
本文介绍了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,长ID){
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屋!
查看全文