尝试调用虚方法null引用对象

时间:2015-11-10 21:25:47

标签: java android

我在手机上运行这个应用程序就好了,然后,在更改任何内容后,我更改为安装在我的nexus 7.现在我收到此错误。

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
        at com.th3ramr0d.tc3studyguide.MainActivity.onCreate(MainActivity.java:37)

这是第37行的代码。

rateMe.setOnClickListener(new View.OnClickListener() {

这是setOnClickListener

的整个代码块
Button rateMe = (Button)findViewById(R.id.rateMe);
rateMe.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Intent intent = new Intent(Intent.ACTION_VIEW);
            intent.setData(Uri.parse("market://details?id=com.th3ramr0d.app"));
            startActivity(intent);
        }
    });

XML文件

<Button
        android:id="@+id/rateMe"
        android:text="Rate Me"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        />

这在我的手机上运行得很好。然后我尝试将它安装在我的手机上,它现在给了我完全相同的错误。我试过了:

Gradle Sync

重建应用

清理应用

手机和平板电脑上已卸载的应用

重启两台设备

重新启动Android Studio

重新启动的计算机

OnCreate方法

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getSupportActionBar().hide();


    boolean firstTimeRun = getFirstTimeRun();

    if (firstTimeRun == true) {
        firstTimeRun();
    } else {
        run();
    }


    Button rateMe = (Button)findViewById(R.id.rateMe);
    ImageView prt = (ImageView)findViewById(R.id.prt);
    ImageView pfp = (ImageView)findViewById(R.id.pfp);

    rateMe.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Intent intent = new Intent(Intent.ACTION_VIEW);
            intent.setData(Uri.parse("market://details?id=com.th3ramr0d.tc3studyguide"));
            startActivity(intent);
        }
    });

    prt.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Intent intent = new Intent(Intent.ACTION_VIEW);
            intent.setData(Uri.parse("market://details?id=com.th3ramr0d.prtmanagerfree"));
            startActivity(intent);
        }
    });

    pfp.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Intent intent = new Intent(Intent.ACTION_VIEW);
            intent.setData(Uri.parse("market://details?id=com.th3ramr0d.poundforpoundfree"));
            startActivity(intent);
        }
    });

}

1 个答案:

答案 0 :(得分:1)

您没有设置内容视图:

setContentView(R.layout.your_xml);