gsantner / markor

Text editor - Notes & ToDo (for Android) - Markdown, todo.txt, plaintext, math, ..
https://github.com/gsantner/markor/discussions/2269
Other
3.78k stars 361 forks source link

First Start after Install: missing file write permission: App does not start. #1982

Closed k3b closed 1 year ago

k3b commented 1 year ago

⚠️ This issue respects the following points: ⚠️

Description

The App does not start. Immediate crash. Same issue as #1976 #1964 .

Steps to reproduce

  1. Using debug version Mordor instead of Markor
  2. uninstall Mordor
  3. In Filemanager make shure that folder /storage/emulated/0/Documents/mordor/ does not exist (delete or rename)
  4. In Androidstudio put a breakpoint at DocumentEditAndViewFragment.isStateBad()
  5. install and debug Mordor
  6. => isStateBad fails with testCreateParent /storage/emulated/0/Documents/mordor/todo.txt
  7. => isStateBad fails with testCreateParent /storage/emulated/0/Documents/mordor/QuickNote.md
  8. => App crashes with "android.view.WindowLeaked: Activity net.gsantner.markor.activity.MainActivity has leaked window ..."

Here is the complete Logcat of the crash

2023-02-18 12:55:55.523 22978-22978 net.gsantn...ewFragment net.gsantner.markor_test             I  newInstance(document=/storage/emulated/0/Documents/mordor/todo.txt, lineNumber=-919385553, preview=false
2023-02-18 12:55:55.647 22978-22978 net.gsantn...ewFragment net.gsantner.markor_test             I  isStateBad testCreateParent /storage/emulated/0/Documents/mordor/todo.txt
2023-02-18 12:55:55.722 22978-22978 net.gsantn...ewFragment net.gsantner.markor_test             I  newInstance(document=/storage/emulated/0/Documents/mordor/QuickNote.md, lineNumber=-919385553, preview=false
2023-02-18 12:55:55.779 22978-22978 net.gsantn...ewFragment net.gsantner.markor_test             I  isStateBad testCreateParent /storage/emulated/0/Documents/mordor/QuickNote.md
2023-02-18 12:55:56.278 22978-22978 View                    net.gsantner.markor_test             W  requestLayout() improperly called by androidx.appcompat.widget.AppCompatTextView{e1c24d3 V.ED..... ......ID 28,25-143,72} during layout: running second layout pass
2023-02-18 12:55:56.497 22978-23071 OpenGLRenderer          net.gsantner.markor_test             I  Davey! duration=1761ms; Flags=1, IntendedVsync=630260455810310, Vsync=630260472476976, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=630260480294511, AnimationStart=630260480436699, PerformTraversalsStart=630260480452480, DrawStart=630262012679719, SyncQueued=630262052374563, SyncStart=630262052793729, IssueDrawCommandsStart=630262053107271, SwapBuffers=630262216184927, FrameCompleted=630262217518417, DequeueBufferDuration=222000, QueueBufferDuration=322000, 
2023-02-18 12:55:56.521 22978-22978 Choreographer           net.gsantner.markor_test             I  Skipped 104 frames!  The application may be doing too much work on its main thread.
2023-02-18 12:55:56.724 22978-23071 OpenGLRenderer          net.gsantner.markor_test             I  Davey! duration=1937ms; Flags=0, IntendedVsync=630260505942481, Vsync=630262239275745, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=630262242038990, AnimationStart=630262242173625, PerformTraversalsStart=630262438307792, DrawStart=630262438912219, SyncQueued=630262439616802, SyncStart=630262440200552, IssueDrawCommandsStart=630262440290188, SwapBuffers=630262441977063, FrameCompleted=630262444103833, DequeueBufferDuration=136000, QueueBufferDuration=1093000, 
2023-02-18 12:55:56.827 22978-23071 OpenGLRenderer          net.gsantner.markor_test             I  Davey! duration=2037ms; Flags=0, IntendedVsync=630260505942481, Vsync=630262239275745, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=630262242038990, AnimationStart=630262242173625, PerformTraversalsStart=630262438307792, DrawStart=630262463980865, SyncQueued=630262506812740, SyncStart=630262510742479, IssueDrawCommandsStart=630262511017740, SwapBuffers=630262523106698, FrameCompleted=630262547831542, DequeueBufferDuration=679000, QueueBufferDuration=702000, 
2023-02-18 12:55:56.850 22978-22978 TouchFilte...tageHelper net.gsantner.markor_test             I  [needTouchEventFilter] Displayid : 0
2023-02-18 12:55:56.856 22978-22978 BezellessG...sionFilter net.gsantner.markor_test             D  getdisplaysize, x : 720 y : 1440
2023-02-18 12:55:57.118 22978-23042 ner.markor_tes          net.gsantner.markor_test             W  Accessing hidden method Landroid/media/AudioManager;->getOutputLatency(I)I (greylist, reflection, allowed)
2023-02-18 12:55:57.127 22978-23042 cr_media                net.gsantner.markor_test             W  Requires BLUETOOTH permission
2023-02-18 12:55:57.148 22978-22978 cr_AwContents           net.gsantner.markor_test             W  WebView.destroy() called while WebView is still attached to window.
2023-02-18 12:55:57.166 22978-22978 cr_AwContents           net.gsantner.markor_test             W  WebView.destroy() called while WebView is still attached to window.
2023-02-18 12:55:57.239 22978-22978 WindowManager           net.gsantner.markor_test             E  android.view.WindowLeaked: Activity net.gsantner.markor.activity.MainActivity has leaked window DecorView@9a88b30[MainActivity] that was originally added here
    at android.view.ViewRootImpl.(ViewRootImpl.java:648)
    at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:406)
    at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:102)
    at android.app.Dialog.show(Dialog.java:419)
    at androidx.appcompat.app.AlertDialog$Builder.show(AlertDialog.java:1009)
    at net.gsantner.opoc.util.GsContextUtils.checkExternalStoragePermission(GsContextUtils.java:2371)
    at net.gsantner.opoc.frontend.settings.GsPermissionChecker.doIfExtStoragePermissionGranted(GsPermissionChecker.java:30)
    at net.gsantner.markor.frontend.settings.MarkorPermissionChecker.doIfExtStoragePermissionGranted(MarkorPermissionChecker.java:27)
    at net.gsantner.markor.activity.MainActivity.onResume(MainActivity.java:209)
    at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1454)
    at android.app.Activity.performResume(Activity.java:7972)
    at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4311)
    at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4353)
    at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:52)
    at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2063)
    at android.os.Handler.dispatchMessage(Handler.java:107)
    at android.os.Looper.loop(Looper.java:214)
    at android.app.ActivityThread.main(ActivityThread.java:7615)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)
2023-02-18 12:55:57.269 22978-23088 AudioCapabilities       net.gsantner.markor_test             W  Unsupported mime audio/adpcm
2023-02-18 12:55:57.270 22978-23088 AudioCapabilities       net.gsantner.markor_test             W  Unsupported mime audio/x-lg-alac
2023-02-18 12:55:57.273 22978-23088 AudioCapabilities       net.gsantner.markor_test             W  Unsupported mime audio/g726
2023-02-18 12:55:57.274 22978-23088 AudioCapabilities       net.gsantner.markor_test             W  Unsupported mime audio/x-lg-ms-wma
2023-02-18 12:55:57.275 22978-23088 AudioCapabilities       net.gsantner.markor_test             W  Unsupported mime audio/lg-wma-voice
2023-02-18 12:55:57.276 22978-23088 AudioCapabilities       net.gsantner.markor_test             W  Unsupported mime audio/x-lg-flac
2023-02-18 12:55:57.293 22978-23088 VideoCapabilities       net.gsantner.markor_test             W  Unsupported mime video/mjpg
2023-02-18 12:55:57.301 22978-23088 VideoCapabilities       net.gsantner.markor_test             W  Unsupported mime video/theora
2023-02-18 12:55:57.348 22978-23088 Utils                   net.gsantner.markor_test             W  could not parse long range '689-670'
2023-02-18 12:55:57.351 22978-23088 Utils                   net.gsantner.markor_test             W  could not parse long range '689-670'
2023-02-18 12:55:59.202 22978-22978 TouchFilte...tageHelper net.gsantner.markor_test             I  [needTouchEventFilter] Displayid : 0
2023-02-18 12:55:59.205 22978-22978 BezellessG...sionFilter net.gsantner.markor_test             D  getdisplaysize, x : 720 y : 1440
2023-02-18 12:56:01.938 22978-22978 chromium                net.gsantner.markor_test             E  [ERROR:aw_browser_terminator.cc(125)] Renderer process (23031) crash detected (code -1).

Note: i have added additional logging to the sourcecode to find out what is happening. See mergerequest https://github.com/gsantner/markor/pull/1983

Since Mordor has not asked for "android.permission.WRITE_EXTERNAL_STORAGE" yet I assume that this is permission/security issue.

Information

Android version: 10 Device: LG App Version: Markor v2.10.7 (143) ; github commit db645c55 Gregor Santner gsantner@mailbox.org on 13.02.2023 at 16:28

Source

git master branch

Format / File type

Not specific

Additional info / Log

Here is the complete Logcat of the crash

<pre>
2023-02-18 12:55:55.523 22978-22978 net.gsantn...ewFragment net.gsantner.markor_test             I  newInstance(document=/storage/emulated/0/Documents/mordor/todo.txt, lineNumber=-919385553, preview=false
2023-02-18 12:55:55.647 22978-22978 net.gsantn...ewFragment net.gsantner.markor_test             I  isStateBad testCreateParent /storage/emulated/0/Documents/mordor/todo.txt
2023-02-18 12:55:55.722 22978-22978 net.gsantn...ewFragment net.gsantner.markor_test             I  newInstance(document=/storage/emulated/0/Documents/mordor/QuickNote.md, lineNumber=-919385553, preview=false
2023-02-18 12:55:55.779 22978-22978 net.gsantn...ewFragment net.gsantner.markor_test             I  isStateBad testCreateParent /storage/emulated/0/Documents/mordor/QuickNote.md
2023-02-18 12:55:56.278 22978-22978 View                    net.gsantner.markor_test             W  requestLayout() improperly called by androidx.appcompat.widget.AppCompatTextView{e1c24d3 V.ED..... ......ID 28,25-143,72} during layout: running second layout pass
2023-02-18 12:55:56.497 22978-23071 OpenGLRenderer          net.gsantner.markor_test             I  Davey! duration=1761ms; Flags=1, IntendedVsync=630260455810310, Vsync=630260472476976, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=630260480294511, AnimationStart=630260480436699, PerformTraversalsStart=630260480452480, DrawStart=630262012679719, SyncQueued=630262052374563, SyncStart=630262052793729, IssueDrawCommandsStart=630262053107271, SwapBuffers=630262216184927, FrameCompleted=630262217518417, DequeueBufferDuration=222000, QueueBufferDuration=322000, 
2023-02-18 12:55:56.521 22978-22978 Choreographer           net.gsantner.markor_test             I  Skipped 104 frames!  The application may be doing too much work on its main thread.
2023-02-18 12:55:56.724 22978-23071 OpenGLRenderer          net.gsantner.markor_test             I  Davey! duration=1937ms; Flags=0, IntendedVsync=630260505942481, Vsync=630262239275745, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=630262242038990, AnimationStart=630262242173625, PerformTraversalsStart=630262438307792, DrawStart=630262438912219, SyncQueued=630262439616802, SyncStart=630262440200552, IssueDrawCommandsStart=630262440290188, SwapBuffers=630262441977063, FrameCompleted=630262444103833, DequeueBufferDuration=136000, QueueBufferDuration=1093000, 
2023-02-18 12:55:56.827 22978-23071 OpenGLRenderer          net.gsantner.markor_test             I  Davey! duration=2037ms; Flags=0, IntendedVsync=630260505942481, Vsync=630262239275745, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=630262242038990, AnimationStart=630262242173625, PerformTraversalsStart=630262438307792, DrawStart=630262463980865, SyncQueued=630262506812740, SyncStart=630262510742479, IssueDrawCommandsStart=630262511017740, SwapBuffers=630262523106698, FrameCompleted=630262547831542, DequeueBufferDuration=679000, QueueBufferDuration=702000, 
2023-02-18 12:55:56.850 22978-22978 TouchFilte...tageHelper net.gsantner.markor_test             I  [needTouchEventFilter] Displayid : 0
2023-02-18 12:55:56.856 22978-22978 BezellessG...sionFilter net.gsantner.markor_test             D  getdisplaysize, x : 720 y : 1440
2023-02-18 12:55:57.118 22978-23042 ner.markor_tes          net.gsantner.markor_test             W  Accessing hidden method Landroid/media/AudioManager;->getOutputLatency(I)I (greylist, reflection, allowed)
2023-02-18 12:55:57.127 22978-23042 cr_media                net.gsantner.markor_test             W  Requires BLUETOOTH permission
2023-02-18 12:55:57.148 22978-22978 cr_AwContents           net.gsantner.markor_test             W  WebView.destroy() called while WebView is still attached to window.
2023-02-18 12:55:57.166 22978-22978 cr_AwContents           net.gsantner.markor_test             W  WebView.destroy() called while WebView is still attached to window.
2023-02-18 12:55:57.239 22978-22978 WindowManager           net.gsantner.markor_test             E  android.view.WindowLeaked: Activity net.gsantner.markor.activity.MainActivity has leaked window DecorView@9a88b30[MainActivity] that was originally added here
    at android.view.ViewRootImpl.<init>(ViewRootImpl.java:648)
    at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:406)
    at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:102)
    at android.app.Dialog.show(Dialog.java:419)
    at androidx.appcompat.app.AlertDialog$Builder.show(AlertDialog.java:1009)
    at net.gsantner.opoc.util.GsContextUtils.checkExternalStoragePermission(GsContextUtils.java:2371)
    at net.gsantner.opoc.frontend.settings.GsPermissionChecker.doIfExtStoragePermissionGranted(GsPermissionChecker.java:30)
    at net.gsantner.markor.frontend.settings.MarkorPermissionChecker.doIfExtStoragePermissionGranted(MarkorPermissionChecker.java:27)
    at net.gsantner.markor.activity.MainActivity.onResume(MainActivity.java:209)
    at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1454)
    at android.app.Activity.performResume(Activity.java:7972)
    at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4311)
    at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4353)
    at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:52)
    at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2063)
    at android.os.Handler.dispatchMessage(Handler.java:107)
    at android.os.Looper.loop(Looper.java:214)
    at android.app.ActivityThread.main(ActivityThread.java:7615)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)
2023-02-18 12:55:57.269 22978-23088 AudioCapabilities       net.gsantner.markor_test             W  Unsupported mime audio/adpcm
2023-02-18 12:55:57.270 22978-23088 AudioCapabilities       net.gsantner.markor_test             W  Unsupported mime audio/x-lg-alac
2023-02-18 12:55:57.273 22978-23088 AudioCapabilities       net.gsantner.markor_test             W  Unsupported mime audio/g726
2023-02-18 12:55:57.274 22978-23088 AudioCapabilities       net.gsantner.markor_test             W  Unsupported mime audio/x-lg-ms-wma
2023-02-18 12:55:57.275 22978-23088 AudioCapabilities       net.gsantner.markor_test             W  Unsupported mime audio/lg-wma-voice
2023-02-18 12:55:57.276 22978-23088 AudioCapabilities       net.gsantner.markor_test             W  Unsupported mime audio/x-lg-flac
2023-02-18 12:55:57.293 22978-23088 VideoCapabilities       net.gsantner.markor_test             W  Unsupported mime video/mjpg
2023-02-18 12:55:57.301 22978-23088 VideoCapabilities       net.gsantner.markor_test             W  Unsupported mime video/theora
2023-02-18 12:55:57.348 22978-23088 Utils                   net.gsantner.markor_test             W  could not parse long range '689-670'
2023-02-18 12:55:57.351 22978-23088 Utils                   net.gsantner.markor_test             W  could not parse long range '689-670'
2023-02-18 12:55:59.202 22978-22978 TouchFilte...tageHelper net.gsantner.markor_test             I  [needTouchEventFilter] Displayid : 0
2023-02-18 12:55:59.205 22978-22978 BezellessG...sionFilter net.gsantner.markor_test             D  getdisplaysize, x : 720 y : 1440
2023-02-18 12:56:01.938 22978-22978 chromium                net.gsantner.markor_test             E  [ERROR:aw_browser_terminator.cc(125)] Renderer process (23031) crash detected (code -1).

</pre>

Note: i have added additional logging to the sourcecode to find out what is happening. See mergerequest https://github.com/gsantner/markor/pull/1983

Since Mordor has not asked for "android.permission.WRITE_EXTERNAL_STORAGE" yet  I assume that this is permission/security issue.
gsantner commented 1 year ago

Duplicate #1886 . Please keep it together, thank you