繁体   English   中英

NullPointerException: .... 空对象引用上的虚拟方法 'android.bluetooth.le.ScanRecord android.bluetooth.le.ScanResult.getScanRecord()'

[英]NullPointerException: .... virtual method 'android.bluetooth.le.ScanRecord android.bluetooth.le.ScanResult.getScanRecord()' on a null object reference

我在这行代码中使用了函数 getScanRecord:

if (!(this.mScanResult.getScanRecord().getServiceData() == null || this.mScanResult.getScanRecord().getServiceData().size() == 0)) {
    advertisementData = advertisementData + "Service Data: " + this.mScanResult.getScanRecord().getServiceData().toString().replace('{', ' ').replace('}', ' ') + "\n";
}

它在 Android Studio 中给了我这个错误:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.catu.catucomm/com.catu.catucomm.Second}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.bluetooth.le.ScanRecord android.bluetooth.le.ScanResult.getScanRecord()' on a null object reference

根据您的错误消息,我怀疑您的 'mScanResult'变量为 在代码的那一刻检查您的“mScanResult”是否为

尝试这个。

    /*Listener sur le btn Pair*/
    mPairBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this,Second.class);
                intent.putExtra(EXTRAS_SCAN_RESULT, -YOU NEED TO PUT YOUR SCAN RESULT HERE- );
                startActivity(intent);
                finish();
        }
    });

您需要使用此 putExtra() 函数将扫描结果对象传递给第二个活动。

我通过像这样初始化变量解决了这个问题:

private ScanResult mScanResult;
public Second(ScanResult mScanResult) 
{
       this.mScanResult = mScanResult;
}

但现在我遇到了新问题:

java.lang.InstantiationException: java.lang.Class<com.catu.catucomm.Second> 没有零参数构造函数

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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