TeamAmaze / TeamAmaze/AmazeFileManager

`NPE` on `HybridFile#getName`

Open
#3,734 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Crash-NullPointerException From-Email Issue-Bug
Dominant language
Kotlin
Stars
6.4k
Forks
1.7k
Avg merge
3d 9h
Merged PRs (30d)
1

Description

Issue explanation (write below this line)

I tried go open the history

Exception

  • App Name: Файловий менеджер Amaze
  • Package: com.amaze.filemanager
  • Version: 3.8.5
  • User Action: UI Error
  • Request: Application crash
  • OS: Linux Android 13 - 33
  • Device: a52sxq
  • Model: SM-A528B
  • Product: a52sxqeea
Crash log

java.lang.NullPointerException: Attempt to invoke virtual method
'java.lang.String androidx.documentfile.provider.DocumentFile.getName()' on
a null object reference
at com.amaze.filemanager.filesystem.HybridFile.getName(HybridFile.java:466)
at
com.amaze.filemanager.adapters.HiddenAdapter.onBindViewHolder(HiddenAdapter.kt:73)
at
com.amaze.filemanager.adapters.HiddenAdapter.onBindViewHolder(HiddenAdapter.kt:50)
at
androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:7065)
at
androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:7107)
at
androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:6012)
at
androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6279)
at
androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6118)
at
androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6114)
at
androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2303)
at
androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1627)
at
androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1587)
at
androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:665)
at
androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4134)
at
androidx.recyclerview.widget.RecyclerView.onMeasure(RecyclerView.java:3540)
at android.view.View.measure(View.java:27709)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7352)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.view.View.measure(View.java:27709)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7352)
at
android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:842)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
at android.view.View.measure(View.java:27709)
at
com.afollestad.materialdialogs.internal.MDRootLayout.onMeasure(MDRootLayout.java:295)
at android.view.View.measure(View.java:27709)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7352)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.view.View.measure(View.java:27709)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7352)
at
android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:842)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
at android.view.View.measure(View.java:27709)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7352)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at com.android.internal.policy.DecorView.onMeasure(DecorView.java:1366)
at android.view.View.measure(View.java:27709)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:4711)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:3301)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3607)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2991)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:10665)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1301)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1309)
at android.view.Choreographer.doCallbacks(Choreographer.java:923)
at android.view.Choreographer.doFrame(Choreographer.java:852)
at
android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1283)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8741)
at java.lang.reflect.Method.invoke(Native Method)
at
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)


Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at HybridFile.java:466, where getName() is called, and follow the call from HiddenAdapter.kt:73 while opening history. Reproduce the reported UI error on Android if possible, then inspect why the DocumentFile reference is null. Done means opening history no longer crashes in this path; add or update a focused regression test if the project provides one.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, kotlin
Domain
mobile
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.