TeamAmaze / TeamAmaze/AmazeFileManager
TransactionTooLarge when pulling from SD Card
Open
Nobody has claimed this yet.
Area-ExternalStorage
Area-FileOperations
Crash-OutOfMemory
Issue-Bug
Issue-Severe (high)
- 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'm getting a considerable amount of app breaking errors stemming from SD card usage.
Exception
- App Name: Amaze File Manager
- Package: com.amaze.filemanager
- Version: 3.6.7
- User Action: UI Error
- Request: Application crash
- OS: Linux Android 11 - 30
- Device: kiev
- Model: motorola one 5G ace
- Product: kiev_retail
Crash log
java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 1318820 bytes
at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1720)
at android.app.ContextImpl.startService(ContextImpl.java:1670)
at android.content.ContextWrapper.startService(ContextWrapper.java:720)
at android.content.ContextWrapper.startService(ContextWrapper.java:720)
at com.amaze.filemanager.asynchronous.management.ServiceWatcherUtil.runService(ServiceWatcherUtil.java:195)
at com.amaze.filemanager.asynchronous.asynctasks.PrepareCopyTask.startService(PrepareCopyTask.java:206)
at com.amaze.filemanager.asynchronous.asynctasks.PrepareCopyTask.finishCopying(PrepareCopyTask.java:345)
at com.amaze.filemanager.asynchronous.asynctasks.PrepareCopyTask.onEndDialog(PrepareCopyTask.java:283)
at com.amaze.filemanager.asynchronous.asynctasks.PrepareCopyTask.replaceFiles(PrepareCopyTask.java:319)
at com.amaze.filemanager.asynchronous.asynctasks.PrepareCopyTask.lambda$showDialog$2(PrepareCopyTask.java:241)
at com.amaze.filemanager.asynchronous.asynctasks.PrepareCopyTask.lambda$showDialog$2$PrepareCopyTask(Unknown Source:0)
at com.amaze.filemanager.asynchronous.asynctasks.-$$Lambda$PrepareCopyTask$75dSuI7LFbSJVQGrHk_P9Ju86wU.onClick(Unknown Source:12)
at com.afollestad.materialdialogs.MaterialDialog.onClick(MaterialDialog.java:433)
at android.view.View.performClick(View.java:7455)
at android.view.View.performClickInternal(View.java:7432)
at android.view.View.access$3600(View.java:810)
at android.view.View$PerformClick.run(View.java:28312)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Caused by: android.os.TransactionTooLargeException: data parcel size 1318820 bytes
at android.os.BinderProxy.transactNative(Native Method)
at android.os.BinderProxy.transact(BinderProxy.java:550)
at android.app.IActivityManager$Stub$Proxy.startService(IActivityManager.java:5877)
at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1700)
... 23 more
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with ServiceWatcherUtil.runService, PrepareCopyTask.startService, and the copy flow locations shown in the stack trace. Reproduce pulling or copying from the SD card on the reported Android environment and inspect how the service request reaches the transaction limit. Done means the operation no longer crashes with TransactionTooLargeException.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, java, kotlin
- Domain
- mobile-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100