无法启动活动ComponentInfo:java空指针异常

时间:2012-10-09 07:40:49

标签: android android-intent

我得到了无法启动活动的异常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

为什么我收到错误。有帮助??

1 个答案:

答案 0 :(得分:3)

改变这一点,

  btn=(ImageButton)findViewById(R.id.cartbutton);

 btn=(ImageButton)actionbar1.findViewById(R.id.cartbutton);

也许从它的起源位置引用视图应该可以解决问题。

因为通常当你调用findViewbyId()时,android只会从setContentView中使用的xml中搜索元素,因为你使用的是操作栏视图,这应该会有所帮助。