简体   繁体   中英

Android development beginner - error

Well, I'm doing this app just for trial. And there's this error. It says:

04-21 04:11:41.618: E/AndroidRuntime(333): FATAL EXCEPTION: main
04-21 04:11:41.618: E/AndroidRuntime(333): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.windteste/com.example.windteste.MainActivity}: java.lang.NullPointerException
04-21 04:11:41.618: E/AndroidRuntime(333):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
04-21 04:11:41.618: E/AndroidRuntime(333):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
04-21 04:11:41.618: E/AndroidRuntime(333):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)

..and a lot more lines of error. So, these are the two methods ( Dfig and MainActivity ):

package com.example.windteste;

import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;

public class Dfig extends Activity{

    @Override
    protected void onCreate(Bundle blablu) {
        // TODO Auto-generated method stub
        super.onCreate(blablu);
        setContentView(R.layout.activity_main);
        MediaPlayer windsound = MediaPlayer.create(Dfig.this, R.raw.windsound);
        windsound.start();
        Thread timer = new Thread(){
            public void run(){
                try{
                    sleep(4000);
                }catch (InterruptedException e){
                    e.printStackTrace();
                }finally{
                    Intent openMain = new Intent("com.example.windteste.MAIN");
                    startActivity(openMain);
                }
            }
        };
        timer.start();
        windsound.release();
    }





}





 package com.example.windteste;

import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.app.Activity;
import android.text.InputType;

----------------------------------------------------------------------------------


public class MainActivity extends Activity {

    Button check = (Button) findViewById(R.id.calculator);
    final EditText UserInput = (EditText) findViewById(R.id.windspeed);
    final TextView P = (TextView) findViewById(R.id.potencia);


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout2);



    UserInput.setInputType(InputType.TYPE_CLASS_NUMBER);


    check.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {


        Number Ws = (Number) UserInput.getText();
        P.setText("Your total is " + Ws);

        }
    });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    } 



}

Well, I hope you can help me.
Thank you!

Try:

public class MainActivity extends Activity {

    Button check;
    final EditText UserInput;
    final TextView P;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout2);

        check = (Button) findViewById(R.id.calculator);
        UserInput = (EditText) findViewById(R.id.windspeed);
        P = (TextView) findViewById(R.id.potencia);

    //Rest is same 

You cannot use findViewById() until after setContentView() has been called.

Make sure both the activities are listed in the manifest. What it looks like is MainActivity is not listed in your manifest file.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM