Skip to content

Nextcloud Apps Crash when Scrolling #17702

Open

Description

@usupsaepul69

⚠️ 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

Activity

  1. daniele-verducci commented on Sep 24, 2026

    @daniele-verducci
    Contributor

    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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions