我得到了无法启动活动的异常ComponentInfo:java.nullpointer异常我已经检查了我的整个代码,但我无法解决错误
这是我的代码
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.store_denomination);
actionbar=getSupportActionBar();
actionbar.setDisplayShowHomeEnabled(false);
actionbar.setDisplayShowTitleEnabled(false);
actionbar.setDisplayShowCustomEnabled(true);
actionbar1 = LayoutInflater.from(this).inflate(R.layout.action_custom, null);
spin1 = (Spinner)findViewById(R.id.spin);
ProgressDialog progress = new ProgressDialog(this);
progress.setMessage("Loading......");
new MyClass(progress).execute();
String urlvalue = ((MyApplication) getApplicationContext()).url;
new DownloadImageTask().execute(urlvalue);
youpaytxt = (TextView)findViewById(R.id.youpaytextview);
//name = (TextView)findViewById(R.id.nametextview);
description = (TextView)findViewById(R.id.descriptiontextview);
btncheckout = (Button)findViewById(R.id.checkoutbutton);
edt = (EditText)findViewById(R.id.editText1);
thumb_image = (ImageView)findViewById(R.id.imageView1);
contshopping = (Button)findViewById(R.id.continueshoppingbutton);
pg = (ProgressBar)findViewById(R.id.progressBar1);
nametextview = (TextView)findViewById(R.id.nametextview);
description = (TextView)findViewById(R.id.descriptiontextview);
btnterms = (Button)findViewById(R.id.termsbutton);
//termstxt=(TextView)findViewById(R.id.trmstxtview);
//termstxt.setVisibility(termstxt.GONE);
//termstxt.setTypeface(arial_font);
description.setTypeface(arial_font);
name = ((MyApplication) getApplicationContext()).nameofbrand;
nametextview.setText(name);
Typeface.createFromAsset(getAssets(), "fonts/arial.ttf");
quant = String.valueOf(1);
btn=(ImageButton)findViewById(R.id.cartbutton);
if(!(((MyApplication)getApplicationContext()).cartproductsname).isEmpty())
{
btn.setOnClickListener(new OnClickListener() { //error is coming here from logcat
public void onClick(View v) {
// TODO Auto-generated method stub
Intent first=new Intent(Detailsofproduct.this,CommentListActivity.class);
startActivity(first);
}
});
}
这是我的logcat
10-09 13:01:01.951: E/AndroidRuntime(2135): FATAL EXCEPTION: main
10-09 13:01:01.951: E/AndroidRuntime(2135): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.androidhive.xmlparsing/com.androidhive.xmlparsing.Detailsofproduct}: java.lang.NullPointerException
10-09 13:01:01.951: E/AndroidRuntime(2135): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
10-09 13:01:01.951: E/AndroidRuntime(2135): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
10-09 13:01:01.951: E/AndroidRuntime(2135): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
10-09 13:01:01.951: E/AndroidRuntime(2135): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
10-09 13:01:01.951: E/AndroidRuntime(2135): at android.os.Handler.dispatchMessage(Handler.java:99)
10-09 13:01:01.951: E/AndroidRuntime(2135): at android.os.Looper.loop(Looper.java:123)
10-09 13:01:01.951: E/AndroidRuntime(2135): at android.app.ActivityThread.main(ActivityThread.java:3683)
10-09 13:01:01.951: E/AndroidRuntime(2135): at java.lang.reflect.Method.invokeNative(Native Method)
10-09 13:01:01.951: E/AndroidRuntime(2135): at java.lang.reflect.Method.invoke(Method.java:507)
10-09 13:01:01.951: E/AndroidRuntime(2135): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
10-09 13:01:01.951: E/AndroidRuntime(2135): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
10-09 13:01:01.951: E/AndroidRuntime(2135): at dalvik.system.NativeStart.main(Native Method)
10-09 13:01:01.951: E/AndroidRuntime(2135): Caused by: java.lang.NullPointerException
10-09 13:01:01.951: E/AndroidRuntime(2135): at com.androidhive.xmlparsing.Detailsofproduct.onCreate(Detailsofproduct.java:209)
10-09 13:01:01.951: E/AndroidRuntime(2135): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-09 13:01:01.951: E/AndroidRuntime(2135): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
10-09 13:01:01.951: E/AndroidRuntime(2135): ... 11 more
为什么我收到错误。有帮助??
答案 0 :(得分:3)
改变这一点,
btn=(ImageButton)findViewById(R.id.cartbutton);
到
btn=(ImageButton)actionbar1.findViewById(R.id.cartbutton);
也许从它的起源位置引用视图应该可以解决问题。
因为通常当你调用findViewbyId()
时,android只会从setContentView
中使用的xml中搜索元素,因为你使用的是操作栏视图,这应该会有所帮助。