Repository navigation
Nextcloud Apps Crash when Scrolling #17702
Copy link
Copy link
Open
Labels
bugfeature: filesfeedback-requestedhotspot: larger folder handlingperformance: OOM 🧠Out of memory errors / OutOfMemoryErrorOut of memory errors / OutOfMemoryError
Description
⚠️ Before posting ⚠️
- This is a bug, not a question or an enhancement.
- I've searched for similar issues and didn't find a duplicate.
- I've written a clear and descriptive title for this issue, not just "Bug" or "Crash".
- I agree to follow Nextcloud's Code of Conduct.
Steps to reproduce
I was just scrolling through my folders looking for a file, then the app started lagging and crashing.
Expected behaviour
Scrolling shouldn't take up much RAM Usage right? It should be optimized further so that the application does not consume too much RAM when scrolling through folders with lots of files.
Actual behaviour
When scrolling through a folder with lots of files, the app may run smoothly for a few seconds, then start to lag and crash.
Android version
14
Device brand and model
Tecno LH8n
Stock or custom OS?
Stock
Nextcloud android app version
34.1.1
Nextcloud server version
33.0.3.2
Using a reverse proxy?
I don't know
Android logs
Cause of error
Exception in thread "main" java.lang.OutOfMemoryError: Failed to allocate a 32 byte allocation with 3819520 free bytes and 3730KB until OOM, target footprint 536870912, growth limit 536870912; giving up on allocation because <1% of heap free after GC.
at java.util.HashMap$KeySet.iterator(HashMap.java:991)
at java.util.HashSet.iterator(HashSet.java:183)
at androidx.constraintlayout.core.widgets.analyzer.Direct.verticalSolvingPass(Direct.java:496)
at androidx.constraintlayout.core.widgets.analyzer.Direct.solvingPass(Direct.java:230)
at androidx.constraintlayout.core.widgets.ConstraintWidgetContainer.layout(ConstraintWidgetContainer.java:711)
at androidx.constraintlayout.core.widgets.analyzer.BasicMeasure.solveLinearSystem(BasicMeasure.java:170)
at androidx.constraintlayout.core.widgets.analyzer.BasicMeasure.solverMeasure(BasicMeasure.java:298)
at androidx.constraintlayout.core.widgets.ConstraintWidgetContainer.measure(ConstraintWidgetContainer.java:119)
at androidx.constraintlayout.widget.ConstraintLayout.resolveSystem(ConstraintLayout.java:1634)
at androidx.constraintlayout.widget.ConstraintLayout.onMeasure(ConstraintLayout.java:1777)
at android.view.View.measure(View.java:27339)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7124)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1608)
at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1240)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:723)
at android.view.View.measure(View.java:27339)
at androidx.recyclerview.widget.RecyclerView$LayoutManager.measureChildWithMargins(RecyclerView.java:10210)
at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1688)
at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1622)
at androidx.recyclerview.widget.LinearLayoutManager.scrollBy(LinearLayoutManager.java:1425)
at androidx.recyclerview.widget.LinearLayoutManager.scrollVerticallyBy(LinearLayoutManager.java:1158)
at androidx.recyclerview.widget.RecyclerView.scrollStep(RecyclerView.java:2050)
at androidx.recyclerview.widget.RecyclerView$ViewFlinger.run(RecyclerView.java:5835)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1506)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1515)
at android.view.Choreographer.doCallbacks(Choreographer.java:1085)
at android.view.Choreographer.doFrame(Choreographer.java:971)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1489)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:243)
at android.os.Looper.loop(Looper.java:338)
at android.app.ActivityThread.main(ActivityThread.java:8470)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:600)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1064)App information
- ID:
com.nextcloud.client - Version:
340010190 - Build flavor:
gplay
Device information
- Brand:
TECNO - Device:
TECNO-LH8n - Model:
TECNO LH8n - Id:
UP1A.231005.007 - Product:
LH8n-GL
Firmware
- SDK:
34 - Release:
14 - Incremental:
250606V834
Server error logs
Additional information
My folder have 8000+ file and Already Synchronized with my phone
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugfeature: filesfeedback-requestedhotspot: larger folder handlingperformance: OOM 🧠Out of memory errors / OutOfMemoryErrorOut of memory errors / OutOfMemoryError
Activity
daniele-verducci commentedon Sep 24, 2026
Hey @usupsaepul69 ,
I think this will be fixed by this (work in progress) PR: #17505
Anyway, some optimization on big folders have already been made in 35.0.0, so you may want to try that one first and see if it fix your issue.
If not, please test the last generated APK in the PR mentioned above (search for "APK file") and please report if it fixes the crash. Please note that PR is not production ready, so better to stick to 35.0.0 for daily usage...
Thank you for your collaboration!