辉煌仪奇 2024-04-12 13:20 采纳率: 47.4%
浏览 1
已结题

安卓蓝牙初始化报错,如何修复

安卓java 报错内容如下

FATAL EXCEPTION: main
                                                                                                    Process: com.sumarte.vehiclepro, PID: 3569
                                                                                                    java.lang.RuntimeException: Unable to create application com.sumarte.vehiclepro.VehicleProApplication: java.lang.SecurityException: com.sumarte.vehiclepro: One of RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED should be specified when a receiver isn't being registered exclusively for system broadcasts
                                                                                                        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7482)
                                                                                                        at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0)
                                                                                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2409)
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:106)
                                                                                                        at android.os.Looper.loopOnce(Looper.java:222)
                                                                                                        at android.os.Looper.loop(Looper.java:314)
                                                                                                        at android.app.ActivityThread.main(ActivityThread.java:8706)
                                                                                                        at java.lang.reflect.Method.invoke(Native Method)
                                                                                                        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:565)
                                                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
                                                                                                    Caused by: java.lang.SecurityException: com.sumarte.vehiclepro: One of RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED should be specified when a receiver isn't being registered exclusively for system broadcasts
                                                                                                        at android.os.Parcel.createExceptionOrNull(Parcel.java:3057)
                                                                                                        at android.os.Parcel.createException(Parcel.java:3041)
                                                                                                        at android.os.Parcel.readException(Parcel.java:3024)
                                                                                                        at android.os.Parcel.readException(Parcel.java:2966)
                                                                                                        at android.app.IActivityManager$Stub$Proxy.registerReceiverWithFeature(IActivityManager.java:6205)
                                                                                                        at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1863)
                                                                                                        at android.app.ContextImpl.registerReceiver(ContextImpl.java:1803)
                                                                                                        at android.app.ContextImpl.registerReceiver(ContextImpl.java:1791)
                                                                                                        at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:766)
                                                                                                        at com.sumarte.lpble.bleconnect.BleConnect.init(BleConnect.java:109)
                                                                                                        at com.sumarte.lpble.bleconnect.BleConnect.<init>(BleConnect.java:32)
                                                                                                        at com.sumarte.lpble.LpBle.init(LpBle.java:31)
                                                                                                        at com.sumarte.vehiclepro.VehicleProApplication.onCreate(VehicleProApplication.java:140)
                                                                                                        at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1325)
                                                                                                        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7475)
                                                                                                        at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0) 
                                                                                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2409) 
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:106) 
                                                                                                        at android.os.Looper.loopOnce(Looper.java:222) 
                                                                                                        at android.os.Looper.loop(Looper.java:314) 
                                                                                                        at android.app.ActivityThread.main(ActivityThread.java:8706) 
                                                                                                        at java.lang.reflect.Method.invoke(Native Method) 
                                                                                                        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:565) 
                                                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081) 
                                                                                                    Caused by: android.os.RemoteException: Remote stack trace:
                                                                                                        at com.android.server.am.ActivityManagerService.registerReceiverWithFeature(ActivityManagerService.java:14678)
                                                                                                        at android.app.IActivityManager$Stub.onTransact$registerReceiverWithFeature$(IActivityManager.java:12225)
                                                                                                        at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:3194)
                                                                                                        at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2884)
                                                                                                        at android.os.Binder.execTransactInternal(Binder.java:1346)

弄了很久不能通过真机调试解决这个问题并通过真机调试
另外我是安卓接触的同学,CHATGPT的方法试了很多,没有成果,需要一个指导,如果能远程帮助可适当加价.
https://hhyq.lanzouq.com/ia1O61us3jah 这是项目的代码
报错的地方在 LpBle.getInstance().init(this); 初始化的时候
VehicleProApplication 文件最后一行

  • 写回答

10条回答 默认 最新

  • 阿里嘎多学长 2024-04-12 13:21
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    这个错误提示是关于Android应用中的接收器(Receiver)注册时的问题。在Android中,当你尝试注册一个BroadcastReceiver(广播接收器),如果没有明确指定RECEIVER_EXPORTED(接收者导出)或RECEIVER_NOT_EXPORTED(接收者不导出),并且该接收器不是专门为系统广播设计的,那么就会抛出SecurityException。

    以下是一些可能的解决方案:

    1. 检查接收器注册: 确保你在VehicleProApplication或相关类中注册接收器时正确设置了ACTION_EXTERNAL_APPLICATIONS_AVAILABLE(或类似系统广播)的行为。确保你有指定intentFilter并使用了registerReceiver()方法,如下所示:

      IntentFilter filter = new IntentFilter();
      filter.addAction(ACTION_EXTERNAL_APPLICATIONS_AVAILABLE);
      filter.setExported(false); // 如果你的接收器不需要被其他应用访问,设置为false
      registerReceiver(myReceiver, filter);
      
    2. 权限和导出属性: 确保你的应用具有适当的权限(如Manifest.permission.RECEIVE_BOOT_COMPLETED等),并且如果你的接收器需要被其他应用看到,那么需要设置RECEIVER_EXPORTED为true。

    3. 更新代码逻辑: 检查是否有其他地方误用了接收器或者没有正确处理系统广播。确保你的应用不会意外地注册接收器以接收系统级别的广播。

    4. 清理注册: 在卸载应用后,有时残留的接收器可能会导致问题。尝试重启设备,然后清除应用数据和缓存(Settings > Apps & notifications > Your App > Storage > Clear cache and data)。

    5. 真机调试: 使用Android Studio的Logcat工具,查看与接收器相关的日志,以便更好地理解问题所在。在错误发生时,检查是否有其他异常信息,这有助于定位问题。

    如果上述步骤都无法解决问题,建议将完整的registerReceiver()代码片段以及相关的IntentFilter展示出来,以便更准确地分析。如果涉及到蓝牙相关的接收器,确保蓝牙权限已经正确配置。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月12日
  • 修改了问题 4月12日
  • 创建了问题 4月12日

悬赏问题

  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图