Nutrient Android SDK 11.5 release notes
RSS19 May 2026
Nutrient Android SDK 11.5 is a maintenance release focused on stability and polish across annotation interaction, signing, and progressive rendering. It restores the PdfThumbnailBar.setOnScrollListener and PdfThumbnailBar.setOuterMargin customization hooks that were removed in 11.1.0, removes the ReLinker integration in favor of direct System.loadLibrary calls, and raises the default maximum zoom level from 20x to 40x.
There are no source-breaking API changes in this release. Refer to the migration guide below for notes on the ReLinker dependency change and the new default maximum zoom.
This release contains several additional fixes and enhancements. For the full list of changes, refer to our changelog.
Restored thumbnail bar customization
The PdfThumbnailBar.setOnScrollListener and PdfThumbnailBar.setOuterMargin hooks removed in 11.1.0 are back. Apps that customized scroll behavior or outer margins on the scrollable thumbnail bar can call these APIs again without keeping older SDK versions pinned.
ReLinker removal
The SDK no longer depends on the com.getkeepsafe.relinker:relinker library. Native library loading now uses System.loadLibrary directly, which is reliable across the supported minSdk 23+ range. Apps no longer receive ReLinker as a transitive dependency through Nutrient.
Higher default maximum zoom
The default maximum zoom for documents has been raised from 20x to 40x, alongside a fix for blank pages that could appear at very high zoom levels. Users can now zoom further into detailed pages — for example, technical drawings or floor plans — without rendering glitches.
Bug fixes
This release addresses issues in both the user interface and underlying model layer.
UI
- Improved hit detection for line, polyline, polygon, ink, square, and circle annotations so that taps clearly outside an annotation no longer select it.
- Fixed an
IllegalStateExceptioncrash that could occur after signing a form field and scrolling, triggered by the orientation unlock when the signature picker dialog closes. - Fixed a rare rendering issue where, in a narrow timing window after opening a document, selecting an annotation could leave a duplicate copy of it visible on the page until the next scroll or zoom.
- Fixed a regression where switching from another annotation tool to the signature tool without using the previous tool first would leave the previous tool’s per-page handlers active, so taps after the signature dialog closed kept creating the previous tool’s annotations.
- Fixed selection handles collapsing to the top-left corner for stamp and free text annotations with a missing or empty stored content size; the content size is now inferred from the bounding box instead.
- Fixed the measurement scale FAB picker so that changing the scale while a measurement annotation is selected updates that annotation, matching the behavior of the inline annotation inspector. Previously the FAB picker only updated the global default used for newly created annotations.
- Fixed a regression where the scale calibration inspector did not appear after drawing a calibration line, requiring the user to deselect the tool before the calibration UI was shown.
- Fixed the redaction action button and annotation note hint icons not updating after a document was reloaded in place (for example, after saving content-editing changes); creating or deleting annotations on the reloaded document now updates the button and note icons as expected.
- Fixed a recycled-bitmap crash that could occur when navigating between cached pages during progressive rendering.
- Fixed a rare rendering crash during rapid document transitions.
- Fixed blank page rendering at high zoom levels and raised the default maximum zoom from 20x to 40x.
Model
- Improved bitmap pool reuse efficiency for externally-managed bitmaps.
- Fixed a crash when validating CAdES-detached signatures if the OCSP responder certificate chain cannot be trusted.
- Fixed a rare crash during progressive page rendering when an image load is resumed without a valid in-flight entry.
- Fixed a rare crash when tapping or selecting text on PDF pages that contain non-text glyphs.
- Fixed a rare
StaleDataExceptioncrash when reading the title or size of a document opened from a content URI whose provider returns an empty cursor. - Fixed a sporadic
IllegalStateException: Annotation is not valid JSON.fromAnnotationProvider.createAnnotationFromInstantJson()when invoked concurrently on the same page. - Fixed plain text free text annotations containing emoji rendering clipped emoji.
- Fixed an issue where removing a note from a markup annotation could be undone after exporting and reimporting XFDF.
- Fixed an issue where reordering pages in some PDFs could fail to save because of page labels.
- Fixed measurement snapping on PDF pages with a CropBox offset from the MediaBox.
Migration guide {#migration-guide}
This release has no source-breaking API changes. The notes below cover a dependency change and a behavioral change that may affect your app.
ReLinker dependency removed
The com.getkeepsafe.relinker:relinker transitive dependency has been removed. If your app uses ReLinker directly — for example, to load your own native libraries — declare it explicitly in your build.gradle:
dependencies { implementation("com.getkeepsafe.relinker:relinker:1.4.5")}If your app does not use ReLinker directly, no action is required.
Default maximum zoom raised to 40x
The default maximum zoom is now 40x (previously 20x). If you rely on the previous 20x ceiling — for example, to constrain rendering memory or to keep zoom in sync with another view — set the maximum explicitly:
val configuration = PdfActivityConfiguration.Builder(context) .maxZoomScale(20f) .build()