Skip to content

Conversation

@JoelOvien
Copy link

Description

This PR updates the flutter_pdfview dependency to version 1.4.2-beta.1 to add support for 16KB page sizes on Android 15 and higher.

Problem

With the upcoming changes in Android 15, applications are required to support 16KB page sizes. The native libraries (.so files) included in previous versions of flutter_pdfview were built with a 4KB page size, causing compatibility issues for applications targeting the new Android version.

Solution

This pull request resolves the issue by updating the flutter_pdfview dependency to 1.4.2-beta.1. This version of the dependency includes updated native libraries that are aligned with the 16KB page size requirement.

@gemini-code-assist
Copy link

Summary of Changes

Hello @JoelOvien, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request proactively addresses an upcoming compatibility requirement for Android 15 and subsequent versions. By updating the flutter_pdfview dependency, the project now supports the new 16KB page size standard, preventing potential runtime issues and ensuring continued functionality on the latest Android platform.

Highlights

  • Android 15+ Compatibility: Adds support for 16KB page sizes on Android 15 and higher, addressing upcoming system requirements.
  • Dependency Update: The flutter_pdfview dependency has been updated to version 1.4.2-beta.1.
  • Problem Resolution: Resolves compatibility issues with native libraries that were previously built with a 4KB page size, ensuring proper functioning on newer Android versions.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the flutter_pdfview dependency to a beta version to add support for 16KB page sizes on Android 15. The change is straightforward and necessary to ensure compatibility with the upcoming Android version. My feedback includes a suggestion to consider publishing this package as a pre-release version to reflect its dependency on a beta package, which is a good practice for managing user expectations about stability.

@dbenedictos
Copy link

@JoelOvien flutter_pdfview now supports 16kb pages with version 1.4.3 :)

@JoelOvien
Copy link
Author

@JoelOvien flutter_pdfview now supports 16kb pages with version 1.4.3 :)

Thanks @dbenedictos, I have now updated the version

@michaelbarillahudu
Copy link

Just curious, how are you checking if this package is in alignment? I'm using the script found here, https://developer.android.com/guide/practices/page-sizes#alignment-use-script and running it for my app after making changes to the pubspec, cleaning, getting, and then rebuilding.

The output after doing a dependency override to 1.4.3 for flutter_pdfview shows the following

Recursively analyzing ../build/app/outputs/apk/release/app-release.apk

NOTICE: Zip alignment check requires build-tools version 35.0.0-rc3 or higher.
  You can install the latest build-tools by running the below command
  and updating your $PATH:

    sdkmanager "build-tools;35.0.0-rc3"

=== ELF alignment ===
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/armeabi-v7a/libflutter.so: \e[32mALIGNED\e[0m (2**16)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/armeabi-v7a/libapp.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/armeabi-v7a/libmodpng.so: \e[31mUNALIGNED\e[0m (2**12)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/armeabi-v7a/libsurface_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/armeabi-v7a/libmodft2.so: \e[31mUNALIGNED\e[0m (2**12)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/armeabi-v7a/libc++_shared.so: \e[31mUNALIGNED\e[0m (2**12)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/armeabi-v7a/libmodpdfium.so: \e[31mUNALIGNED\e[0m (2**12)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/armeabi-v7a/libimage_processing_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/armeabi-v7a/libdatastore_shared_counter.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/armeabi-v7a/libjniPdfium.so: \e[31mUNALIGNED\e[0m (2**12)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/arm64-v8a/libflutter.so: \e[32mALIGNED\e[0m (2**16)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/arm64-v8a/libapp.so: \e[32mALIGNED\e[0m (2**16)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/arm64-v8a/libmodpng.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/arm64-v8a/libsurface_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/arm64-v8a/libmodft2.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/arm64-v8a/libc++_shared.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/arm64-v8a/libmodpdfium.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/arm64-v8a/libimage_processing_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/arm64-v8a/libdatastore_shared_counter.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/arm64-v8a/libjniPdfium.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/x86_64/libflutter.so: \e[32mALIGNED\e[0m (2**16)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/x86_64/libapp.so: \e[32mALIGNED\e[0m (2**16)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/x86_64/libmodpng.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/x86_64/libsurface_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/x86_64/libmodft2.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/x86_64/libc++_shared.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/x86_64/libmodpdfium.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/x86_64/libimage_processing_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/x86_64/libdatastore_shared_counter.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/x86_64/libjniPdfium.so: \e[32mALIGNED\e[0m (2**14)
\e[31mFound 5 unaligned libs (only arm64-v8a/x86_64 libs need to be aligned).\e[0m
=====================

When removing the package that depends on flutter_pdfview and its usage within my app, I get a clean output.

Recursively analyzing ../build/app/outputs/apk/release/app-release.apk

NOTICE: Zip alignment check requires build-tools version 35.0.0-rc3 or higher.
  You can install the latest build-tools by running the below command
  and updating your $PATH:

    sdkmanager "build-tools;35.0.0-rc3"

=== ELF alignment ===
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/armeabi-v7a/libflutter.so: \e[32mALIGNED\e[0m (2**16)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/armeabi-v7a/libapp.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/armeabi-v7a/libsurface_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/armeabi-v7a/libimage_processing_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/armeabi-v7a/libdatastore_shared_counter.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/arm64-v8a/libflutter.so: \e[32mALIGNED\e[0m (2**16)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/arm64-v8a/libapp.so: \e[32mALIGNED\e[0m (2**16)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/arm64-v8a/libsurface_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/arm64-v8a/libimage_processing_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/arm64-v8a/libdatastore_shared_counter.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/x86_64/libflutter.so: \e[32mALIGNED\e[0m (2**16)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/x86_64/libapp.so: \e[32mALIGNED\e[0m (2**16)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/x86_64/libsurface_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/x86_64/libimage_processing_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/x86_64/libdatastore_shared_counter.so: \e[32mALIGNED\e[0m (2**14)
ELF Verification Successful
=====================

@michaelbarillahudu
Copy link

Just curious, how are you checking if this package is in alignment? I'm using the script found here, https://developer.android.com/guide/practices/page-sizes#alignment-use-script and running it for my app after making changes to the pubspec, cleaning, getting, and then rebuilding.

The output after doing a dependency override to 1.4.3 for flutter_pdfview shows the following

Recursively analyzing ../build/app/outputs/apk/release/app-release.apk

NOTICE: Zip alignment check requires build-tools version 35.0.0-rc3 or higher.
  You can install the latest build-tools by running the below command
  and updating your $PATH:

    sdkmanager "build-tools;35.0.0-rc3"

=== ELF alignment ===
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/armeabi-v7a/libflutter.so: \e[32mALIGNED\e[0m (2**16)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/armeabi-v7a/libapp.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/armeabi-v7a/libmodpng.so: \e[31mUNALIGNED\e[0m (2**12)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/armeabi-v7a/libsurface_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/armeabi-v7a/libmodft2.so: \e[31mUNALIGNED\e[0m (2**12)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/armeabi-v7a/libc++_shared.so: \e[31mUNALIGNED\e[0m (2**12)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/armeabi-v7a/libmodpdfium.so: \e[31mUNALIGNED\e[0m (2**12)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/armeabi-v7a/libimage_processing_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/armeabi-v7a/libdatastore_shared_counter.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/armeabi-v7a/libjniPdfium.so: \e[31mUNALIGNED\e[0m (2**12)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/arm64-v8a/libflutter.so: \e[32mALIGNED\e[0m (2**16)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/arm64-v8a/libapp.so: \e[32mALIGNED\e[0m (2**16)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/arm64-v8a/libmodpng.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/arm64-v8a/libsurface_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/arm64-v8a/libmodft2.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/arm64-v8a/libc++_shared.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/arm64-v8a/libmodpdfium.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/arm64-v8a/libimage_processing_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/arm64-v8a/libdatastore_shared_counter.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/arm64-v8a/libjniPdfium.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/x86_64/libflutter.so: \e[32mALIGNED\e[0m (2**16)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/x86_64/libapp.so: \e[32mALIGNED\e[0m (2**16)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/x86_64/libmodpng.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/x86_64/libsurface_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/x86_64/libmodft2.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/x86_64/libc++_shared.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/x86_64/libmodpdfium.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/x86_64/libimage_processing_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/x86_64/libdatastore_shared_counter.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/x86_64/libjniPdfium.so: \e[32mALIGNED\e[0m (2**14)
\e[31mFound 5 unaligned libs (only arm64-v8a/x86_64 libs need to be aligned).\e[0m
=====================

When removing the package that depends on flutter_pdfview and its usage within my app, I get a clean output.

Recursively analyzing ../build/app/outputs/apk/release/app-release.apk

NOTICE: Zip alignment check requires build-tools version 35.0.0-rc3 or higher.
  You can install the latest build-tools by running the below command
  and updating your $PATH:

    sdkmanager "build-tools;35.0.0-rc3"

=== ELF alignment ===
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/armeabi-v7a/libflutter.so: \e[32mALIGNED\e[0m (2**16)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/armeabi-v7a/libapp.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/armeabi-v7a/libsurface_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/armeabi-v7a/libimage_processing_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/armeabi-v7a/libdatastore_shared_counter.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/arm64-v8a/libflutter.so: \e[32mALIGNED\e[0m (2**16)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/arm64-v8a/libapp.so: \e[32mALIGNED\e[0m (2**16)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/arm64-v8a/libsurface_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/arm64-v8a/libimage_processing_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/arm64-v8a/libdatastore_shared_counter.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/x86_64/libflutter.so: \e[32mALIGNED\e[0m (2**16)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/x86_64/libapp.so: \e[32mALIGNED\e[0m (2**16)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/x86_64/libsurface_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/x86_64/libimage_processing_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/x86_64/libdatastore_shared_counter.so: \e[32mALIGNED\e[0m (2**14)
ELF Verification Successful
=====================

Actually, I'm guessing this is fine since in the script it states "only arm64-v8a/x86_64 libs need to be aligned". Running the Build APK Analyzer on the release shows all libs in alignment, even the armeabi-v7a. Also, I don't see the 16KB warning when running my app.

image

@dbenedictos
Copy link

Just curious, how are you checking if this package is in alignment? I'm using the script found here, https://developer.android.com/guide/practices/page-sizes#alignment-use-script and running it for my app after making changes to the pubspec, cleaning, getting, and then rebuilding.

The output after doing a dependency override to 1.4.3 for flutter_pdfview shows the following

Recursively analyzing ../build/app/outputs/apk/release/app-release.apk

NOTICE: Zip alignment check requires build-tools version 35.0.0-rc3 or higher.
  You can install the latest build-tools by running the below command
  and updating your $PATH:

    sdkmanager "build-tools;35.0.0-rc3"

=== ELF alignment ===
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/armeabi-v7a/libflutter.so: \e[32mALIGNED\e[0m (2**16)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/armeabi-v7a/libapp.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/armeabi-v7a/libmodpng.so: \e[31mUNALIGNED\e[0m (2**12)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/armeabi-v7a/libsurface_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/armeabi-v7a/libmodft2.so: \e[31mUNALIGNED\e[0m (2**12)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/armeabi-v7a/libc++_shared.so: \e[31mUNALIGNED\e[0m (2**12)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/armeabi-v7a/libmodpdfium.so: \e[31mUNALIGNED\e[0m (2**12)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/armeabi-v7a/libimage_processing_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/armeabi-v7a/libdatastore_shared_counter.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/armeabi-v7a/libjniPdfium.so: \e[31mUNALIGNED\e[0m (2**12)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/arm64-v8a/libflutter.so: \e[32mALIGNED\e[0m (2**16)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/arm64-v8a/libapp.so: \e[32mALIGNED\e[0m (2**16)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/arm64-v8a/libmodpng.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/arm64-v8a/libsurface_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/arm64-v8a/libmodft2.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/arm64-v8a/libc++_shared.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/arm64-v8a/libmodpdfium.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/arm64-v8a/libimage_processing_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/arm64-v8a/libdatastore_shared_counter.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/arm64-v8a/libjniPdfium.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/x86_64/libflutter.so: \e[32mALIGNED\e[0m (2**16)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/x86_64/libapp.so: \e[32mALIGNED\e[0m (2**16)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/x86_64/libmodpng.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/x86_64/libsurface_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/x86_64/libmodft2.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/x86_64/libc++_shared.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/x86_64/libmodpdfium.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/x86_64/libimage_processing_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/x86_64/libdatastore_shared_counter.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.5wB5Ij88v6/lib/x86_64/libjniPdfium.so: \e[32mALIGNED\e[0m (2**14)
\e[31mFound 5 unaligned libs (only arm64-v8a/x86_64 libs need to be aligned).\e[0m
=====================

When removing the package that depends on flutter_pdfview and its usage within my app, I get a clean output.

Recursively analyzing ../build/app/outputs/apk/release/app-release.apk

NOTICE: Zip alignment check requires build-tools version 35.0.0-rc3 or higher.
  You can install the latest build-tools by running the below command
  and updating your $PATH:

    sdkmanager "build-tools;35.0.0-rc3"

=== ELF alignment ===
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/armeabi-v7a/libflutter.so: \e[32mALIGNED\e[0m (2**16)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/armeabi-v7a/libapp.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/armeabi-v7a/libsurface_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/armeabi-v7a/libimage_processing_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/armeabi-v7a/libdatastore_shared_counter.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/arm64-v8a/libflutter.so: \e[32mALIGNED\e[0m (2**16)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/arm64-v8a/libapp.so: \e[32mALIGNED\e[0m (2**16)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/arm64-v8a/libsurface_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/arm64-v8a/libimage_processing_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/arm64-v8a/libdatastore_shared_counter.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/x86_64/libflutter.so: \e[32mALIGNED\e[0m (2**16)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/x86_64/libapp.so: \e[32mALIGNED\e[0m (2**16)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/x86_64/libsurface_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/x86_64/libimage_processing_util_jni.so: \e[32mALIGNED\e[0m (2**14)
/var/folders/x0/nkxl8x113tx31tqnk8mqy6hr0000gn/T/app-release_out_XXXXX.kkdo3uD8LF/lib/x86_64/libdatastore_shared_counter.so: \e[32mALIGNED\e[0m (2**14)
ELF Verification Successful
=====================

In my experience. I ran the apk analyzer tool in android studio after updating all packages to their latest resolvable version. The tool said that all my packages are 16kb compatible but, when running the app on a 16kb simulator. I still get the incompatible warning. I manually eliminated packages to see what was the culprit and I concluded that it was the flutter_cached_pdfview -> flutter_pdfview

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants