java - 当我使用 onNewIntent 时发生 java.lang.NullPointerException 的错误

标签 java android bluetooth bluetooth-lowenergy android-4.3-jelly-bean

我正在开发一个应用程序,我必须在 Android 4.3 上连接到蓝牙设备。

我已连接到 BLE 设备,Main.java 中的函数将从 DeviceControl.java 接收设备地址。

我将设备地址存储在我已连接的 String[] address 中。

如果从 DeviceControl.java 接收到的地址已经在 String[] address 中,它将不会在 ListView 中列出。

当我看到日志时,从 DeviceControl.java 和字符串数组接收到的 string 的值是相同的。 地址[0] = 90:59:AF:0B:8A:AC 地址 = 90:59:AF:0B:8A:AC

但它仍然在 ListView 中显示地址,并且 if else 函数 表明这是不同的!

这是我的代码:

public class Main extends Activity {

private String[] address = {"0","1","2","3","4","5"};
private String mdeviceAddress;

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


        mdeviceAddress = infoIntent.getStringExtra(EXTRAS_DEVICE_ADDRESS);
        address[0] = mdeviceAddress;
        devicelist = (ListView) findViewById(R.id.devicelist);
        for(int i=0;i<3;i++) {
                }
                if(address[i] == mdeviceAddress){
                    Log.v(TAG, "address double :" + mdeviceAddress);

                    break;
                }else if(address[i].length() == 1) {
                    address[i] = mdeviceAddress;
                    name[i] = mdevicename;
                    rssi[i] = rssithreshold;

                    tempaddress = address[i];
                    Log.v(TAG, "show the address :" + address[0]);
                    break;
                } 
            }

它总是显示消息:显示地址:90:59:AF:0B:8A:AC

为什么我看到的地址是一样的,但还是显示不一样????

最佳答案

您不应使用引用相等运算符 (==) 来比较 Java 中的 String 对象。相反,您应该使用 equals() 方法:

if(address[0].equals(mdeviceAddress)) {
    ...
} else {
    ...
}

参见:How do I compare strings in Java?

关于java - 当我使用 onNewIntent 时发生 java.lang.NullPointerException 的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19658603/

相关文章:

java - Combiner 逻辑是否始终与 Reducer 逻辑相同?

android - 在 Android 应用程序中集成谷歌助手

java - 在 HTML 中查找值的快速方法 (Java)

java - 如何根据右对角线交换对称矩阵的元素

android - 如何在android中发送smack中的音频文件

android - Flutter 发布 APK 不工作,但调试 APK 工作

android - 如何追踪Android手机的所有语音通话?

android - 使用 MIT App Inventor 2 扫描蓝牙设备

java - 电话间隙 : BluetoothChatExample [Android]

JavaFX - 手动将图像添加到 GridPane