Skip to content

A tool to help you debug TransactionTooLargeExceptions on Android 7+

License

Notifications You must be signed in to change notification settings

guardian/toolargetool

Folders and files

NameName
Last commit message
Last commit date
Dec 3, 2024
Oct 18, 2024
Mar 23, 2025
Jan 22, 2025
Apr 10, 2017
Mar 31, 2017
May 28, 2024
Oct 18, 2024
Oct 18, 2024
Oct 18, 2024
Oct 18, 2024
May 12, 2021

Repository files navigation

toolargetool

Available on maven central

A tool for debugging TransactionTooLargeException on Android.

"Most underrated solution." - Kedar Paranjape, Jun 7 '18 at 14:26

Usage

  1. Include toolargetool as a dependency (you can remove it again once you've debugged your crash):

    • toolargetool is available from mavenCentral()

    • Add implementation 'com.gu.android:toolargetool:0.3.0' in your module's build.gradle:

      dependencies {
          ...
          implementation 'com.gu.android:toolargetool:0.3.0'
      }
      
  2. Import The package

    import com.gu.toolargetool.TooLargeTool;
    
  3. Add code to start logging during app start, for example in your Application.onCreate method:

    TooLargeTool.startLogging(this);
    
  4. Monitor logcat output to see which components are writing substantial data to the transaction buffer and when:

    $ adb logcat -s TooLargeTool
    

    Example logcat output (TODO: improve this example):

    D/TooLargeTool: MainActivity.onSaveInstanceState wrote: Bundle@200090398 contains 1 keys and measures 0.6 KB when serialized as a Parcel
                                                                            * android:viewHierarchyState = 0.6 KB
    

Release process

Note: these instructions will only work if you have the required credentials for publishing to the com.gu Sonatype repository.

  1. Increase all the version number in toolargetool/build.gradle
  2. Make a commit and tag it with git tag -a v<version number> -m "<message>".
  3. Run ./gradlew publishReleasePublicationToSnapshotRepository.