我正在开发一个具有蓝牙功能的应用程序。我使用一个片段来扫描并列出蓝牙设备。单击时,会回调到提供所选蓝牙设备的主要活动。
我一开始使用的是Android 6(API 23)的智能手机,然后不得不调整代码以适应Android 5.0(API 21)的使用。
我只是将minSDK更改为API21并重新构建了项目,没有任何问题。
该应用程序在智能手机上运行时没有任何问题。安装了Android5的平板电脑运行了该应用程序,但当我选择蓝牙设备时,它会出现空指针异常。
我还没有找到解决这个问题的办法,也不知道如何继续下去。也许有人能帮忙?:-)
日志为:
me: FATAL EXCEPTION: main
Process: de.tuhh.et5.tills.biocontrol, PID: 26512
java.lang.NullPointerException: Attempt to invoke interface method 'void de.tuhh.et5.tills.biocontrol.activity.BLEListFragment$OnBLEDeviceSelectedListener.OnBLEDeviceSelected(android.bluetooth.BluetoothDevice)' on a null object reference at de.tuhh.et5.tills.biocontrol.activity.BLEListFragment.onListItemClick(BLEListFragment.java:92)
at android.app.ListFragment$2.onItemClick(ListFragment.java:160)
at android.widget.AdapterView.performItemClick(AdapterView.java:305)
at android.widget.AbsListView.performItemClick(AbsListView.java:1185)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:3222)
at android.widget.AbsListView$3.run(AbsListView.java:4138)
at android.os.Handler.handleCallback(Handler.java:815)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5568)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:955) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:750)
由于这是大量的代码,我将尝试总结一些重要的代码:
错误指的是这种方法
@Override
public void onListItemClick(ListView mBluetoothLeDeviceList, View v, int position, long id) {
if(DEBUG)d("onListItemClick()");
mBluetoothLeDeviceList.getChildAt(position).setBackgroundColor(Color.GREEN); // set background
mBluetoothLeDeviceList.getChildAt(position).setFocusable(false); // not clickable again
mCallback.OnBLEDeviceSelected(mListAdapter.getDevice(position));
}
Mcallback的最后一行...生成空指针异常。蓝牙设备肯定不是空的,所以在Android5.0下出现的回调肯定有问题(我听起来不对:-))
OnBLEDeviceSelectedListener mCallback;
public interface OnBLEDeviceSelectedListener {
void OnBLEDeviceSelected(BluetoothDevice device);
}
这可以确保在主活动中实现侦听器:
try {
mCallback = (OnBLEDeviceSelectedListener) context;
} catch (ClassCastException e) {
throw new ClassCastException(context.toString()
+ " must implement OnBLEDeviceeSelectedListener");
}
主要活动实现了BlelistFragment.OnbleDeviceSelectedListener并包含
@Override
public void OnBLEDeviceSelected(BluetoothDevice device) {
.
.
.}
就是这样。我觉得它很奇怪,它在一个设备上工作,而在另一个设备上却崩溃了,没有任何编译错误。
Make sure you implement both methods in fragment like this.
@Override
public void onAttach(Context context) {
super.onAttach(context);
//Your callback initialization here
}
@Override
public void onAttach(Activity activity) {
super.onAttach(context);
//Your callback initialization here
}
我是Android的新手,我正在开发一个应用程序,该应用程序试图连接服务器并获取Json响应,将其解析为类并使其可用。 为此,我上了三门课 公共类顾客{} 公共类ServerConnect{} 公共类JsonParser{} Serverconnect使用Volley库在异步线程上下载网页源代码。下载后,Server Connect类启动OnServerResponsed(String Respo
我的应用程序有问题,我想解决它,但我无法访问解决方案,请帮助我,,,
我将使用库,并尝试在应用程序启动时使用以下方法获取令牌。 应用程序在发布时崩溃 AndroidManifest Build.Gradle: 此外,我尝试在SharedPreferences中缓存令牌,但似乎从未调用onNewToken()。 会有什么问题?
我正在尝试实现一个外部色轮,它应该出现在的片段一直在崩溃我的应用程序。我想我明白为什么会发生这种情况,但是在尝试修复它大约6个小时后,我就要放弃了。我知道之前有人问过这个问题,但是我无法为我的特定问题导出一个修复程序。下面是我的代码: 这是Logcat错误: 如果有人能帮我解决这个问题,那就太好了。提前谢谢^^ 编辑:这是我的XML,按要求:
我将要制作android应用程序,但是由于致命的异常:main java.lang.NullPointerException应用程序没有保存数据,请在这里帮助我 这是我的EditNoteActivity 这是我的Logcat错误
我正在使用下面的代码从playstore中获取versionName,通过使用jsoup,我正在获取详细信息,但它会引发一些异常。 我的密码是 请有人帮我解决这个问题。