[英]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.