(BUG)[AttysECG VERSION 1.4.0 ] The app gets crashes when I click on the configure bluetooth
Project Information
- Repository---------------:Here
- Project Name-----------: AttysECG
- Publisher----------------: Glasgow Neuro LTD
- My GitHub account---: Here
- GitHub issue-----------: Here
The PO has acknowledged the bug
berndporr commented 7 hours ago
This was due to a null pointer exception from the new heartrate logging feature. Thanks for pointing it out. Fix has been uploaded and works here. However, I see in the logs that your phone didn't like to be directed to the bluetooth screen. If it's now a permission problem let me know and of course if it works now. Latest version is 41/1.4.2.
Expected behavior
When I click on configure bluetooth, the bluetooth should be turned on and the application should not crash
Actual behavior
The app gets crashes when I click on the configure bluetooth
How to reproduce
download and open the application
configure bluetooth
Note the Bug
Browser/App version-: 1.4.0
Operating system----: 9.0.0
Recording Of The Bug
Logcat
06-08 14:44:29.523 1386 1386 E AndroidRuntime: FATAL EXCEPTION: main
06-08 14:44:29.523 1386 1386 E AndroidRuntime: Process: tech.glasgowneuro.attysecg, PID: 1386
06-08 14:44:29.523 1386 1386 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'void java.io.PrintWriter.flush()' on a null object reference
06-08 14:44:29.523 1386 1386 E AndroidRuntime: at tech.glasgowneuro.attysecg.AttysECG$HRRecorder.shutdown(AttysECG.java:167)
06-08 14:44:29.523 1386 1386 E AndroidRuntime: at tech.glasgowneuro.attysecg.AttysECG$HRRecorder.access$2500(AttysECG.java:131)
06-08 14:44:29.523 1386 1386 E AndroidRuntime: at tech.glasgowneuro.attysecg.AttysECG.startRRrec(AttysECG.java:588)
06-08 14:44:29.523 1386 1386 E AndroidRuntime: at tech.glasgowneuro.attysecg.AttysECG.onStart(AttysECG.java:633)
06-08 14:44:29.523 1386 1386 E AndroidRuntime: at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1395)
06-08 14:44:29.523 1386 1386 E AndroidRuntime: at android.app.Activity.performStart(Activity.java:7348)
06-08 14:44:29.523 1386 1386 E AndroidRuntime: at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3139)
06-08 14:44:29.523 1386 1386 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:180)
06-08 14:44:29.523 1386 1386 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:165)
06-08 14:44:29.523 1386 1386 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:142)
06-08 14:44:29.523 1386 1386 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
06-08 14:44:29.523 1386 1386 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1955)
06-08 14:44:29.523 1386 1386 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106)
06-08 14:44:29.523 1386 1386 E AndroidRuntime: at android.os.Looper.loop(Looper.java:214)
06-08 14:44:29.523 1386 1386 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7073)
06-08 14:44:29.523 1386 1386 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
06-08 14:44:29.523 1386 1386 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
06-08 14:44:29.523 1386 1386 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)
06-08 14:44:35.874 1493 1493 E AndroidRuntime: FATAL EXCEPTION: main
06-08 14:44:35.874 1493 1493 E AndroidRuntime: Process: tech.glasgowneuro.attysecg, PID: 1493
06-08 14:44:35.874 1493 1493 E AndroidRuntime: java.lang.SecurityException: Permission Denial: starting Intent { act=android.settings.BLUETOOTH_SETTINGS cmp=com.android.settings/.Settings$BluetoothSettingsActivity } from ProcessRecord{c834b2bd0 1493:tech.glasgowneuro.attysecg/u0a178} (pid=1493, uid=10178) requires android.permission.BLUETOOTH_ADMIN
06-08 14:44:35.874 1493 1493 E AndroidRuntime: at android.os.Parcel.createException(Parcel.java:1966)
06-08 14:44:35.874 1493 1493 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1934)
06-08 14:44:35.874 1493 1493 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1884)
06-08 14:44:35.874 1493 1493 E AndroidRuntime: at android.app.IActivityManager$Stub$Proxy.startActivity(IActivityManager.java:3600)
06-08 14:44:35.874 1493 1493 E AndroidRuntime: at android.app.Instrumentation.execStartActivity(Instrumentation.java:1673)
06-08 14:44:35.874 1493 1493 E AndroidRuntime: at android.app.Activity.startActivityForResult(Activity.java:4689)
06-08 14:44:35.874 1493 1493 E AndroidRuntime: at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:767)
06-08 14:44:35.874 1493 1493 E AndroidRuntime: at android.app.Activity.startActivityForResult(Activity.java:4647)
06-08 14:44:35.874 1493 1493 E AndroidRuntime: at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:754)
06-08 14:44:35.874 1493 1493 E AndroidRuntime: at android.app.Activity.startActivity(Activity.java:5008)
06-08 14:44:35.874 1493 1493 E AndroidRuntime: at android.app.Activity.startActivity(Activity.java:4976)
06-08 14:44:35.874 1493 1493 E AndroidRuntime: at tech.glasgowneuro.attysecg.AttysECG$4.onClick(AttysECG.java:685)
06-08 14:44:35.874 1493 1493 E AndroidRuntime: at androidx.appcompat.app.AlertController$ButtonHandler.handleMessage(AlertController.java:167)
06-08 14:44:35.874 1493 1493 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106)
06-08 14:44:35.874 1493 1493 E AndroidRuntime: at android.os.Looper.loop(Looper.java:214)
06-08 14:44:35.874 1493 1493 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7073)
06-08 14:44:35.874 1493 1493 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
06-08 14:44:35.874 1493 1493 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
06-08 14:44:35.874 1493 1493 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)
06-08 14:44:35.874 1493 1493 E AndroidRuntime: Caused by: android.os.RemoteException: Remote stack trace:
06-08 14:44:35.874 1493 1493 E AndroidRuntime: at com.android.server.am.ActivityStackSupervisor.checkStartAnyActivityPermission(ActivityStackSupervisor.java:2139)
06-08 14:44:35.874 1493 1493 E AndroidRuntime: at com.android.server.am.ActivityStarter.startActivity(ActivityStarter.java:899)
06-08 14:44:35.874 1493 1493 E AndroidRuntime: at com.android.server.am.ActivityStarter.startActivity(ActivityStarter.java:662)
06-08 14:44:35.874 1493 1493 E AndroidRuntime: at com.android.server.am.ActivityStarter.startActivityMayWait(ActivityStarter.java:1534)
06-08 14:44:35.874 1493 1493 E AndroidRuntime: at com.android.server.am.ActivityStarter.execute(ActivityStarter.java:604)
06-08 14:44:35.874 1493 1493 E AndroidRuntime:
06-08 14:44:41.380 1689 1689 E AndroidRuntime: FATAL EXCEPTION: main
06-08 14:44:41.380 1689 1689 E AndroidRuntime: Process: tech.glasgowneuro.attysecg, PID: 1689
06-08 14:44:41.380 1689 1689 E AndroidRuntime: java.lang.SecurityException: Permission Denial: starting Intent { act=android.settings.BLUETOOTH_SETTINGS cmp=com.android.settings/.Settings$BluetoothSettingsActivity } from ProcessRecord{f1bd45bd0 1689:tech.glasgowneuro.attysecg/u0a178} (pid=1689, uid=10178) requires android.permission.BLUETOOTH_ADMIN
06-08 14:44:41.380 1689 1689 E AndroidRuntime: at android.os.Parcel.createException(Parcel.java:1966)
06-08 14:44:41.380 1689 1689 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1934)
06-08 14:44:41.380 1689 1689 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1884)
06-08 14:44:41.380 1689 1689 E AndroidRuntime: at android.app.IActivityManager$Stub$Proxy.startActivity(IActivityManager.java:3600)
06-08 14:44:41.380 1689 1689 E AndroidRuntime: at android.app.Instrumentation.execStartActivity(Instrumentation.java:1673)
06-08 14:44:41.380 1689 1689 E AndroidRuntime: at android.app.Activity.startActivityForResult(Activity.java:4689)
06-08 14:44:41.380 1689 1689 E AndroidRuntime: at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:767)
06-08 14:44:41.380 1689 1689 E AndroidRuntime: at android.app.Activity.startActivityForResult(Activity.java:4647)
06-08 14:44:41.380 1689 1689 E AndroidRuntime: at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:754)
06-08 14:44:41.380 1689 1689 E AndroidRuntime: at android.app.Activity.startActivity(Activity.java:5008)
06-08 14:44:41.380 1689 1689 E AndroidRuntime: at android.app.Activity.startActivity(Activity.java:4976)
06-08 14:44:41.380 1689 1689 E AndroidRuntime: at tech.glasgowneuro.attysecg.AttysECG$4.onClick(AttysECG.java:685)
06-08 14:44:41.380 1689 1689 E AndroidRuntime: at androidx.appcompat.app.AlertController$ButtonHandler.handleMessage(AlertController.java:167)
06-08 14:44:41.380 1689 1689 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106)
06-08 14:44:41.380 1689 1689 E AndroidRuntime: at android.os.Looper.loop(Looper.java:214)
06-08 14:44:41.380 1689 1689 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7073)
06-08 14:44:41.380 1689 1689 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
06-08 14:44:41.380 1689 1689 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
06-08 14:44:41.380 1689 1689 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)
06-08 14:44:41.380 1689 1689 E AndroidRuntime: Caused by: android.os.RemoteException: Remote stack trace:
06-08 14:44:41.380 1689 1689 E AndroidRuntime: at com.android.server.am.ActivityStackSupervisor.checkStartAnyActivityPermission(ActivityStackSupervisor.java:2139)
06-08 14:44:41.380 1689 1689 E AndroidRuntime: at com.android.server.am.ActivityStarter.startActivity(ActivityStarter.java:899)
06-08 14:44:41.380 1689 1689 E AndroidRuntime: at com.android.server.am.ActivityStarter.startActivity(ActivityStarter.java:662)
06-08 14:44:41.380 1689 1689 E AndroidRuntime: at com.android.server.am.ActivityStarter.startActivityMayWait(ActivityStarter.java:1534)
06-08 14:44:41.380 1689 1689 E AndroidRuntime: at com.android.server.am.ActivityStarter.execute(ActivityStarter.java:604)
06-08 14:44:41.380 1689 1689 E AndroidRuntime:
06-08 14:46:46.542 1813 1813 E AndroidRuntime: FATAL EXCEPTION: main
06-08 14:46:46.542 1813 1813 E AndroidRuntime: Process: tech.glasgowneuro.attysecg, PID: 1813
06-08 14:46:46.542 1813 1813 E AndroidRuntime: android.os.FileUriExposedException: file:///storage/emulated/0/attys/hr.tsv exposed beyond app through ClipData.Item.getUri()
06-08 14:46:46.542 1813 1813 E AndroidRuntime: at android.os.StrictMode.onFileUriExposed(StrictMode.java:1978)
06-08 14:46:46.542 1813 1813 E AndroidRuntime: at android.net.Uri.checkFileUriExposed(Uri.java:2371)
06-08 14:46:46.542 1813 1813 E AndroidRuntime: at android.content.ClipData.prepareToLeaveProcess(ClipData.java:966)
06-08 14:46:46.542 1813 1813 E AndroidRuntime: at android.content.Intent.prepareToLeaveProcess(Intent.java:10917)
06-08 14:46:46.542 1813 1813 E AndroidRuntime: at android.content.Intent.prepareToLeaveProcess(Intent.java:10923)
06-08 14:46:46.542 1813 1813 E AndroidRuntime: at android.content.Intent.prepareToLeaveProcess(Intent.java:10902)
06-08 14:46:46.542 1813 1813 E AndroidRuntime: at android.app.Instrumentation.execStartActivity(Instrumentation.java:1671)
06-08 14:46:46.542 1813 1813 E AndroidRuntime: at android.app.Activity.startActivityForResult(Activity.java:4689)
06-08 14:46:46.542 1813 1813 E AndroidRuntime: at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:767)
06-08 14:46:46.542 1813 1813 E AndroidRuntime: at android.app.Activity.startActivityForResult(Activity.java:4647)
06-08 14:46:46.542 1813 1813 E AndroidRuntime: at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:754)
06-08 14:46:46.542 1813 1813 E AndroidRuntime: at android.app.Activity.startActivity(Activity.java:5008)
06-08 14:46:46.542 1813 1813 E AndroidRuntime: at android.app.Activity.startActivity(Activity.java:4976)
06-08 14:46:46.542 1813 1813 E AndroidRuntime: at tech.glasgowneuro.attysecg.AttysECG$12.onClick(AttysECG.java:1015)
06-08 14:46:46.542 1813 1813 E AndroidRuntime: at androidx.appcompat.app.AlertController$ButtonHandler.handleMessage(AlertController.java:167)
06-08 14:46:46.542 1813 1813 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106)
06-08 14:46:46.542 1813 1813 E AndroidRuntime: at android.os.Looper.loop(Looper.java:214)
06-08 14:46:46.542 1813 1813 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7073)
06-08 14:46:46.542 1813 1813 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
06-08 14:46:46.542 1813 1813 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
06-08 14:46:46.542 1813 1813 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)
06-08 14:46:58.750 3238 3238 E AndroidRuntime: FATAL EXCEPTION: main
06-08 14:46:58.750 3238 3238 E AndroidRuntime: Process: tech.glasgowneuro.attysecg, PID: 3238
06-08 14:46:58.750 3238 3238 E AndroidRuntime: android.os.FileUriExposedException: file:///storage/emulated/0/attys/hr.tsv exposed beyond app through ClipData.Item.getUri()
06-08 14:46:58.750 3238 3238 E AndroidRuntime: at android.os.StrictMode.onFileUriExposed(StrictMode.java:1978)
06-08 14:46:58.750 3238 3238 E AndroidRuntime: at android.net.Uri.checkFileUriExposed(Uri.java:2371)
06-08 14:46:58.750 3238 3238 E AndroidRuntime: at android.content.ClipData.prepareToLeaveProcess(ClipData.java:966)
06-08 14:46:58.750 3238 3238 E AndroidRuntime: at android.content.Intent.prepareToLeaveProcess(Intent.java:10917)
06-08 14:46:58.750 3238 3238 E AndroidRuntime: at android.content.Intent.prepareToLeaveProcess(Intent.java:10923)
06-08 14:46:58.750 3238 3238 E AndroidRuntime: at android.content.Intent.prepareToLeaveProcess(Intent.java:10902)
06-08 14:46:58.750 3238 3238 E AndroidRuntime: at android.app.Instrumentation.execStartActivity(Instrumentation.java:1671)
06-08 14:46:58.750 3238 3238 E AndroidRuntime: at android.app.Activity.startActivityForResult(Activity.java:4689)
06-08 14:46:58.750 3238 3238 E AndroidRuntime: at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:767)
06-08 14:46:58.750 3238 3238 E AndroidRuntime: at android.app.Activity.startActivityForResult(Activity.java:4647)
06-08 14:46:58.750 3238 3238 E AndroidRuntime: at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:754)
06-08 14:46:58.750 3238 3238 E AndroidRuntime: at android.app.Activity.startActivity(Activity.java:5008)
06-08 14:46:58.750 3238 3238 E AndroidRuntime: at android.app.Activity.startActivity(Activity.java:4976)
06-08 14:46:58.750 3238 3238 E AndroidRuntime: at tech.glasgowneuro.attysecg.AttysECG$12.onClick(AttysECG.java:1015)
06-08 14:46:58.750 3238 3238 E AndroidRuntime: at androidx.appcompat.app.AlertController$ButtonHandler.handleMessage(AlertController.java:167)
06-08 14:46:58.750 3238 3238 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106)
06-08 14:46:58.750 3238 3238 E AndroidRuntime: at android.os.Looper.loop(Looper.java:214)
06-08 14:46:58.750 3238 3238 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7073)
06-08 14:46:58.750 3238 3238 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
06-08 14:46:58.750 3238 3238 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
06-08 14:46:58.750 3238 3238 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)
Hello, @xamir5. Thank you for your contribution. Good to see that you provided log-cat to help the PO easily understand the cause of this bug. Well done!
That's said, I would like you to not only publish your report via Utopian immediately your report gets acknowledged. Do well to help the PO more by following up with their comment. Provide them with more information to help them understand the issue better.
I look forward to your next report.
Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.
To view those questions and the relevant answers related to your post, click here.
Need help? Chat with us on Discord.
[utopian-moderator]
Thank you for your review, @knowledges! Keep up the good work!
Hi @xamir5!
Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your post is eligible for our upvote, thanks to our collaboration with @utopian-io!
Feel free to join our @steem-ua Discord server
Hey, @xamir5!
Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!
Get higher incentives and support Utopian.io!
Simply set @utopian.pay as a 5% (or higher) payout beneficiary on your contribution post (via SteemPlus or Steeditor).
Want to chat? Join us on Discord https://discord.gg/h52nFrV.
Vote for Utopian Witness!