作者你好,在从零基础到APP上线这本书中第542页智能小车那里,我把所有代码写好了之后,出现了一个异常
java.lang.NullPointerException: Attempt to invoke virtual method 'android.bluetooth.BluetoothDevice android.bluetooth.BluetoothAdapter.getRemoteDevice(java.lang.String)' on a null object reference
导致无法打开其本身Activity
还有一个问题是
Call requires permission which may be rejected by user: code should explicitly check to see if permission is available (with `checkPermission`) or explicitly handle a potential `SecurityException`
这个又该怎么解决呢?
谢谢!
检查下有没有在AndroidManifest.xml文件中注册权限,没有的话先在AndroidManifest.xml文件中注册权限:
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" ></uses-permission>
<uses-permission android:name="android.permission.BLUETOOTH" ></uses-permission>
下面的问题和上面的是一样的,因为没有权限,且没有在checkPermission中抛出异常,可以:
public void checkPermission() {
try {
// 具体操作
} catch (SecurityException ex ) {
System.out.println("权限异常" + ex.getMessage());
}
}
第一个问题需要看下app日志是哪一行代码抛出的异常,看错误是出现了空指针。
第二个问题要检查AndroidManifest.xml是否声明了必需的权限,包括蓝牙权限和定位权限,注意android12有增加新的蓝牙权限,具体看书上说明。