I am using Flutter version 3.27.4. I recently released my Flutter app to the Play Store. The latest version of the app is not working on devices with a 16KB page size—it crashes immediately after opening. I’m not sure how to identify the root cause of the issue. Some sources suggest that updating the Flutter version fixes it, but I’m not sure which version I need to update to in order to resolve the problem.
These are plugins I am using in my app,
font_awesome_flutter: ^10.8.0
google_fonts: ^6.2.1
provider: ^6.0.5
get: ^4.6.6
http: ^1.1.0
shared_preferences: ^2.1.1
flutter_svg: ^2.0.7
geolocator: ^14.0.0
auto_size_text: ^3.0.0
flutter_typeahead: ^5.2.0
screenshot: ^3.0.0
intl: ^0.19.0
geocoding: ^3.0.0
url_launcher: ^6.1.10
overlay_support: ^2.1.0
path_provider: ^2.0.13
share_extend: ^2.0.0
flutter_secure_storage: ^9.2.4
permission_handler: ^12.0.0+1
intl_phone_field: ^3.1.0
avatar_view: ^1.0.1
share_plus: ^10.1.4
flutter_screenutil: ^5.9.0
responsive_framework: ^1.1.0
email_validator: ^3.0.0
decimal: ^2.3.3
custom_date_range_picker: ^1.0.10
string_extensions: ^0.7.3
syncfusion_flutter_charts: ^29.1.38
table_calendar: ^3.0.9
paytm_allinonesdk: ^1.2.6
awesome_snackbar_content: ^0.1.3
syncfusion_flutter_datepicker: ^29.1.38
fl_country_code_picker: ^0.1.9+1
country_code_picker: ^3.0.0
firebase_core: ^3.13.0
firebase_messaging: ^15.2.5
in_app_review: ^2.0.9
flutter_local_notifications: ^19.1.0
google_maps_flutter: ^2.6.1
google_map_polyline_new: ^0.3.0+2
# google_maps_cluster_manager: ^3.0.0+1
# google_maps_flutter_ios: ^2.8.0
rxdart: ^0.28.0
timezone: ^0.10.0
flutter_launcher_icons: ^0.14.3
rename: ^3.0.2
sms_autofill: ^2.4.0
lottie: ^3.3.1
flutter_animarker: ^3.2.0
get_upi: ^0.0.4
custom_map_markers: ^0.0.2+1
fluttertoast: ^8.2.2
gif_view: ^1.0.2
firebase_crashlytics: ^4.3.5
hive_flutter: ^1.1.0
device_preview: ^1.1.0
smooth_page_indicator: ^1.1.0
connectivity_plus: ^6.1.3
ns_upi: ^1.0.2
sqflite: ^2.3.0
flutter_image_compress: ^2.1.0
upgrader: ^11.3.1
open_file: ^3.3.2
ffi: ^2.0.1
easy_pdf_viewer: ^1.0.7
app_tracking_transparency: ^2.0.5
# new_version: ^0.3.1
razorpay_flutter: ^1.3.7
simple_pip_mode: ^1.1.0
dart_ping: ^9.0.1
visibility_detector: ^0.4.0+2
scrollable_positioned_list: ^0.3.8
flutter_flavor: ^3.1.3
live_activities: ^2.3.1
device_info_plus: ^11.3.0
jwt_decoder: ^2.0.1
tuple: ^2.0.2
firebase_analytics: ^11.4.5
amazon_cognito_identity_dart_2: ^3.6.5
dropdown_button2: ^2.3.9
flutter_polyline_points: ^2.1.0
latlong2: ^0.9.1
easy_stepper: ^0.8.3
archive: ^4.0.6
expandable_bottom_sheet: ^1.1.1+1
ansi_styles: ^0.3.2+1
file_saver: ^0.2.9
flutter_animation_progress_bar: ^2.3.1
syncfusion_flutter_sliders: ^29.1.38
dotted_separator: ^1.0.6
dotted_line: ^3.2.3
cached_network_image: ^3.3.1
animated_reorderable_list: ^1.1.5
flutter_reorderable_list: ^1.3.1
open_file_manager: ^1.1.0
syncfusion_flutter_core: ^29.1.38
package_info_plus: ^8.3.0
uni_links2: ^0.6.0+2
mobile_scanner: ^6.0.10
image_picker: ^1.1.2
firebase_remote_config: ^5.4.4
This is my flutter doctor -v result:
[✓] Flutter (Channel stable, 3.27.4, on macOS 14.6 23G80 darwin-arm64, locale en-IN)
• Flutter version 3.27.4 on channel stable at /Users/ragulpr/development/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision d8a9f9a52e (6 months ago), 2025-01-31 16:07:18 -0500
• Engine revision 82bd5b7209
• Dart version 3.6.2
• DevTools version 2.40.3
[✓] Android toolchain - develop for Android devices (Android SDK version 36.0.0)
• Android SDK at /Users/ragulpr/Library/Android/sdk
• Platform android-36, build-tools 36.0.0
• ANDROID_HOME = /Users/ragulpr/Library/Android/sdk
• Java binary at: /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home/bin/java
• Java version Java(TM) SE Runtime Environment (build 17.0.14+8-LTS-191)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 16.2)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 16C5032a
• CocoaPods version 1.16.2
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2024.3)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 21.0.6+-13355223-b631.42)
[✓] VS Code (version 1.102.0)
• VS Code at /Users/ragulpr/Downloads/Visual Studio Code.app/Contents
• Flutter extension version 3.114.0
Analyse APK Result doesn't show any unsupport:
ragulpr@Raguls-MacBook-Air ev-flutter % find . -type f -name '*.so' | while read -r file; do
echo "\n>>> $file"
llvm-objdump -p "$file" | grep "LOAD"
done
>>> ./build/app/intermediates/flutter/release/armeabi-v7a/app.so
LOAD off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**14
LOAD off 0x004a4000 vaddr 0x004a4000 paddr 0x004a4000 align 2**14
LOAD off 0x00cf4000 vaddr 0x00cf4000 paddr 0x00cf4000 align 2**14
>>> ./build/app/intermediates/flutter/release/arm64-v8a/app.so
LOAD off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**16
LOAD off 0x00000000003f0000 vaddr 0x00000000003f0000 paddr 0x00000000003f0000 align 2**16
LOAD off 0x0000000000b80000 vaddr 0x0000000000b80000 paddr 0x0000000000b80000 align 2**16
>>> ./build/app/intermediates/flutter/release/x86_64/app.so
LOAD off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**16
LOAD off 0x00000000003f0000 vaddr 0x00000000003f0000 paddr 0x00000000003f0000 align 2**16
LOAD off 0x0000000000ba0000 vaddr 0x0000000000ba0000 paddr 0x0000000000ba0000 align 2**16
>>> ./build/app/intermediates/merged_native_libs/release/mergeReleaseNativeLibs/out/lib/armeabi-v7a/libflutter.so
LOAD off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**16
LOAD off 0x00267500 vaddr 0x00277500 paddr 0x00277500 align 2**16
LOAD off 0x0070be40 vaddr 0x0072be40 paddr 0x0072be40 align 2**16
LOAD off 0x007401d8 vaddr 0x007701d8 paddr 0x007701d8 align 2**16
>>> ./build/app/intermediates/merged_native_libs/release/mergeReleaseNativeLibs/out/lib/armeabi-v7a/libapp.so
LOAD off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**14
LOAD off 0x004a4000 vaddr 0x004a4000 paddr 0x004a4000 align 2**14
LOAD off 0x00cf4000 vaddr 0x00cf4000 paddr 0x00cf4000 align 2**14
>>> ./build/app/intermediates/merged_native_libs/release/mergeReleaseNativeLibs/out/lib/armeabi-v7a/libbarhopper_v3.so
LOAD off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**12
LOAD off 0x0030c000 vaddr 0x0030c000 paddr 0x0030c000 align 2**12
LOAD off 0x003121a8 vaddr 0x003131a8 paddr 0x003131a8 align 2**12
>>> ./build/app/intermediates/merged_native_libs/release/mergeReleaseNativeLibs/out/lib/armeabi-v7a/libimage_processing_util_jni.so
LOAD off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**12
LOAD off 0x00000ef0 vaddr 0x00001ef0 paddr 0x00001ef0 align 2**12
LOAD off 0x00004cb0 vaddr 0x00006cb0 paddr 0x00006cb0 align 2**12
LOAD off 0x00004e9c vaddr 0x00007e9c paddr 0x00007e9c align 2**12
>>> ./build/app/intermediates/merged_native_libs/release/mergeReleaseNativeLibs/out/lib/armeabi-v7a/libdatastore_shared_counter.so
LOAD off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**14
LOAD off 0x00000a90 vaddr 0x00004a90 paddr 0x00004a90 align 2**14
>>> ./build/app/intermediates/merged_native_libs/release/mergeReleaseNativeLibs/out/lib/x86/libbarhopper_v3.so
LOAD off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**12
LOAD off 0x005cb000 vaddr 0x005cb000 paddr 0x005cb000 align 2**12
LOAD off 0x005d10c0 vaddr 0x005d20c0 paddr 0x005d20c0 align 2**12
>>> ./build/app/intermediates/merged_native_libs/release/mergeReleaseNativeLibs/out/lib/x86/libimage_processing_util_jni.so
LOAD off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**12
LOAD off 0x000017c0 vaddr 0x000027c0 paddr 0x000027c0 align 2**12
LOAD off 0x00008270 vaddr 0x0000a270 paddr 0x0000a270 align 2**12
LOAD off 0x0000847c vaddr 0x0000b47c paddr 0x0000b47c align 2**12
>>> ./build/app/intermediates/merged_native_libs/release/mergeReleaseNativeLibs/out/lib/x86/libdatastore_shared_counter.so
LOAD off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**14
LOAD off 0x00000e10 vaddr 0x00004e10 paddr 0x00004e10 align 2**14
>>> ./build/app/intermediates/merged_native_libs/release/mergeReleaseNativeLibs/out/lib/arm64-v8a/libflutter.so
LOAD off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**16
LOAD off 0x0000000000434800 vaddr 0x0000000000444800 paddr 0x0000000000444800 align 2**16
LOAD off 0x00000000009e7600 vaddr 0x0000000000a07600 paddr 0x0000000000a07600 align 2**16
LOAD off 0x0000000000a4bca8 vaddr 0x0000000000a7bca8 paddr 0x0000000000a7bca8 align 2**16
>>> ./build/app/intermediates/merged_native_libs/release/mergeReleaseNativeLibs/out/lib/arm64-v8a/libapp.so
LOAD off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**16
LOAD off 0x00000000003f0000 vaddr 0x00000000003f0000 paddr 0x00000000003f0000 align 2**16
LOAD off 0x0000000000b80000 vaddr 0x0000000000b80000 paddr 0x0000000000b80000 align 2**16
>>> ./build/app/intermediates/merged_native_libs/release/mergeReleaseNativeLibs/out/lib/arm64-v8a/libbarhopper_v3.so
LOAD off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**14
LOAD off 0x00000000004a4000 vaddr 0x00000000004a4000 paddr 0x00000000004a4000 align 2**14
LOAD off 0x00000000004af180 vaddr 0x00000000004b3180 paddr 0x00000000004b3180 align 2**14
>>> ./build/app/intermediates/merged_native_libs/release/mergeReleaseNativeLibs/out/lib/arm64-v8a/libimage_processing_util_jni.so
LOAD off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**12
LOAD off 0x000000000000193c vaddr 0x000000000000293c paddr 0x000000000000293c align 2**12
LOAD off 0x0000000000006570 vaddr 0x0000000000008570 paddr 0x0000000000008570 align 2**12
LOAD off 0x0000000000006918 vaddr 0x0000000000009918 paddr 0x0000000000009918 align 2**12
>>> ./build/app/intermediates/merged_native_libs/release/mergeReleaseNativeLibs/out/lib/arm64-v8a/libdatastore_shared_counter.so
LOAD off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**14
LOAD off 0x00000000000011c0 vaddr 0x00000000000051c0 paddr 0x00000000000051c0 align 2**14
LOAD off 0x0000000000001428 vaddr 0x0000000000009428 paddr 0x0000000000009428 align 2**14
>>> ./build/app/intermediates/merged_native_libs/release/mergeReleaseNativeLibs/out/lib/x86_64/libflutter.so
LOAD off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**16
LOAD off 0x00000000004525c0 vaddr 0x00000000004625c0 paddr 0x00000000004625c0 align 2**16
LOAD off 0x0000000000aedbc0 vaddr 0x0000000000b0dbc0 paddr 0x0000000000b0dbc0 align 2**16
LOAD off 0x0000000000b50fb0 vaddr 0x0000000000b80fb0 paddr 0x0000000000b80fb0 align 2**16
>>> ./build/app/intermediates/merged_native_libs/release/mergeReleaseNativeLibs/out/lib/x86_64/libapp.so
LOAD off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**16
LOAD off 0x00000000003f0000 vaddr 0x00000000003f0000 paddr 0x00000000003f0000 align 2**16
LOAD off 0x0000000000ba0000 vaddr 0x0000000000ba0000 paddr 0x0000000000ba0000 align 2**16
>>> ./build/app/intermediates/merged_native_libs/release/mergeReleaseNativeLibs/out/lib/x86_64/libbarhopper_v3.so
LOAD off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**14
LOAD off 0x0000000000590000 vaddr 0x0000000000590000 paddr 0x0000000000590000 align 2**14
LOAD off 0x000000000059a0c0 vaddr 0x000000000059e0c0 paddr 0x000000000059e0c0 align 2**14
>>> ./build/app/intermediates/merged_native_libs/release/mergeReleaseNativeLibs/out/lib/x86_64/libimage_processing_util_jni.so
LOAD off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**12
LOAD off 0x0000000000002340 vaddr 0x0000000000003340 paddr 0x0000000000003340 align 2**12
LOAD off 0x000000000000a9d0 vaddr 0x000000000000c9d0 paddr 0x000000000000c9d0 align 2**12
LOAD off 0x000000000000ac80 vaddr 0x000000000000dc80 paddr 0x000000000000dc80 align 2**12
>>> ./build/app/intermediates/merged_native_libs/release/mergeReleaseNativeLibs/out/lib/x86_64/libdatastore_shared_counter.so
LOAD off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**14
LOAD off 0x0000000000000f20 vaddr 0x0000000000004f20 paddr 0x0000000000004f20 align 2**14
>>> ./build/app/intermediates/stripped_native_libs/release/stripReleaseDebugSymbols/out/lib/armeabi-v7a/libflutter.so
LOAD off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**16
LOAD off 0x00267500 vaddr 0x00277500 paddr 0x00277500 align 2**16
LOAD off 0x0070be40 vaddr 0x0072be40 paddr 0x0072be40 align 2**16
LOAD off 0x007401d8 vaddr 0x007701d8 paddr 0x007701d8 align 2**16
>>> ./build/app/intermediates/stripped_native_libs/release/stripReleaseDebugSymbols/out/lib/armeabi-v7a/libapp.so
LOAD off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**14
LOAD off 0x004a4000 vaddr 0x004a4000 paddr 0x004a4000 align 2**14
LOAD off 0x00cf4000 vaddr 0x00cf4000 paddr 0x00cf4000 align 2**14
>>> ./build/app/intermediates/stripped_native_libs/release/stripReleaseDebugSymbols/out/lib/armeabi-v7a/libbarhopper_v3.so
LOAD off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**12
LOAD off 0x0030c000 vaddr 0x0030c000 paddr 0x0030c000 align 2**12
LOAD off 0x003121a8 vaddr 0x003131a8 paddr 0x003131a8 align 2**12
>>> ./build/app/intermediates/stripped_native_libs/release/stripReleaseDebugSymbols/out/lib/armeabi-v7a/libimage_processing_util_jni.so
LOAD off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**12
LOAD off 0x00000ef0 vaddr 0x00001ef0 paddr 0x00001ef0 align 2**12
LOAD off 0x00004cb0 vaddr 0x00006cb0 paddr 0x00006cb0 align 2**12
LOAD off 0x00004e9c vaddr 0x00007e9c paddr 0x00007e9c align 2**12
>>> ./build/app/intermediates/stripped_native_libs/release/stripReleaseDebugSymbols/out/lib/armeabi-v7a/libdatastore_shared_counter.so
LOAD off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**14
LOAD off 0x00000a90 vaddr 0x00004a90 paddr 0x00004a90 align 2**14
>>> ./build/app/intermediates/stripped_native_libs/release/stripReleaseDebugSymbols/out/lib/x86/libbarhopper_v3.so
LOAD off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**12
LOAD off 0x005cb000 vaddr 0x005cb000 paddr 0x005cb000 align 2**12
LOAD off 0x005d10c0 vaddr 0x005d20c0 paddr 0x005d20c0 align 2**12
>>> ./build/app/intermediates/stripped_native_libs/release/stripReleaseDebugSymbols/out/lib/x86/libimage_processing_util_jni.so
LOAD off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**12
LOAD off 0x000017c0 vaddr 0x000027c0 paddr 0x000027c0 align 2**12
LOAD off 0x00008270 vaddr 0x0000a270 paddr 0x0000a270 align 2**12
LOAD off 0x0000847c vaddr 0x0000b47c paddr 0x0000b47c align 2**12
>>> ./build/app/intermediates/stripped_native_libs/release/stripReleaseDebugSymbols/out/lib/x86/libdatastore_shared_counter.so
LOAD off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**14
LOAD off 0x00000e10 vaddr 0x00004e10 paddr 0x00004e10 align 2**14
>>> ./build/app/intermediates/stripped_native_libs/release/stripReleaseDebugSymbols/out/lib/arm64-v8a/libflutter.so
LOAD off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**16
LOAD off 0x0000000000434800 vaddr 0x0000000000444800 paddr 0x0000000000444800 align 2**16
LOAD off 0x00000000009e7600 vaddr 0x0000000000a07600 paddr 0x0000000000a07600 align 2**16
LOAD off 0x0000000000a4bca8 vaddr 0x0000000000a7bca8 paddr 0x0000000000a7bca8 align 2**16
>>> ./build/app/intermediates/stripped_native_libs/release/stripReleaseDebugSymbols/out/lib/arm64-v8a/libapp.so
LOAD off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**16
LOAD off 0x00000000003f0000 vaddr 0x00000000003f0000 paddr 0x00000000003f0000 align 2**16
LOAD off 0x0000000000b80000 vaddr 0x0000000000b80000 paddr 0x0000000000b80000 align 2**16
>>> ./build/app/intermediates/stripped_native_libs/release/stripReleaseDebugSymbols/out/lib/arm64-v8a/libbarhopper_v3.so
LOAD off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**14
LOAD off 0x00000000004a4000 vaddr 0x00000000004a4000 paddr 0x00000000004a4000 align 2**14
LOAD off 0x00000000004af180 vaddr 0x00000000004b3180 paddr 0x00000000004b3180 align 2**14
>>> ./build/app/intermediates/stripped_native_libs/release/stripReleaseDebugSymbols/out/lib/arm64-v8a/libimage_processing_util_jni.so
LOAD off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**12
LOAD off 0x000000000000193c vaddr 0x000000000000293c paddr 0x000000000000293c align 2**12
LOAD off 0x0000000000006570 vaddr 0x0000000000008570 paddr 0x0000000000008570 align 2**12
LOAD off 0x0000000000006918 vaddr 0x0000000000009918 paddr 0x0000000000009918 align 2**12
>>> ./build/app/intermediates/stripped_native_libs/release/stripReleaseDebugSymbols/out/lib/arm64-v8a/libdatastore_shared_counter.so
LOAD off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**14
LOAD off 0x00000000000011c0 vaddr 0x00000000000051c0 paddr 0x00000000000051c0 align 2**14
LOAD off 0x0000000000001428 vaddr 0x0000000000009428 paddr 0x0000000000009428 align 2**14
>>> ./build/app/intermediates/stripped_native_libs/release/stripReleaseDebugSymbols/out/lib/x86_64/libflutter.so
LOAD off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**16
LOAD off 0x00000000004525c0 vaddr 0x00000000004625c0 paddr 0x00000000004625c0 align 2**16
LOAD off 0x0000000000aedbc0 vaddr 0x0000000000b0dbc0 paddr 0x0000000000b0dbc0 align 2**16
LOAD off 0x0000000000b50fb0 vaddr 0x0000000000b80fb0 paddr 0x0000000000b80fb0 align 2**16
>>> ./build/app/intermediates/stripped_native_libs/release/stripReleaseDebugSymbols/out/lib/x86_64/libapp.so
LOAD off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**16
LOAD off 0x00000000003f0000 vaddr 0x00000000003f0000 paddr 0x00000000003f0000 align 2**16
LOAD off 0x0000000000ba0000 vaddr 0x0000000000ba0000 paddr 0x0000000000ba0000 align 2**16
>>> ./build/app/intermediates/stripped_native_libs/release/stripReleaseDebugSymbols/out/lib/x86_64/libbarhopper_v3.so
LOAD off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**14
LOAD off 0x0000000000590000 vaddr 0x0000000000590000 paddr 0x0000000000590000 align 2**14
LOAD off 0x000000000059a0c0 vaddr 0x000000000059e0c0 paddr 0x000000000059e0c0 align 2**14
>>> ./build/app/intermediates/stripped_native_libs/release/stripReleaseDebugSymbols/out/lib/x86_64/libimage_processing_util_jni.so
LOAD off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**12
LOAD off 0x0000000000002340 vaddr 0x0000000000003340 paddr 0x0000000000003340 align 2**12
LOAD off 0x000000000000a9d0 vaddr 0x000000000000c9d0 paddr 0x000000000000c9d0 align 2**12
LOAD off 0x000000000000ac80 vaddr 0x000000000000dc80 paddr 0x000000000000dc80 align 2**12
>>> ./build/app/intermediates/stripped_native_libs/release/stripReleaseDebugSymbols/out/lib/x86_64/libdatastore_shared_counter.so
LOAD off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**14
LOAD off 0x0000000000000f20 vaddr 0x0000000000004f20 paddr 0x0000000000004f20 align 2**14
>>> ./.dart_tool/flutter_build/64bf185f2705c4fa17f72978c4d955ae/armeabi-v7a/app.so
LOAD off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**14
LOAD off 0x004a4000 vaddr 0x004a4000 paddr 0x004a4000 align 2**14
LOAD off 0x00cf4000 vaddr 0x00cf4000 paddr 0x00cf4000 align 2**14
>>> ./.dart_tool/flutter_build/64bf185f2705c4fa17f72978c4d955ae/arm64-v8a/app.so
LOAD off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**16
LOAD off 0x00000000003f0000 vaddr 0x00000000003f0000 paddr 0x00000000003f0000 align 2**16
LOAD off 0x0000000000b80000 vaddr 0x0000000000b80000 paddr 0x0000000000b80000 align 2**16
>>> ./.dart_tool/flutter_build/64bf185f2705c4fa17f72978c4d955ae/x86_64/app.so
LOAD off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**16
LOAD off 0x00000000003f0000 vaddr 0x00000000003f0000 paddr 0x00000000003f0000 align 2**16
LOAD off 0x0000000000ba0000 vaddr 0x0000000000ba0000 paddr 0x0000000000ba0000 align 2**16
NDK Version in<flutter_directory>/packages/flutter_tools/gradle/src/main/groovy/flutter.groovy file:
/**
* Sets the ndkVersion used by default in Flutter app projects.
* Chosen as default version of the AGP version below as found in
* https://developer.android.com/studio/projects/install-ndk#default-ndk-per-agp.
*/
public final String ndkVersion = "26.1.10909125"
I am using Flutter version 3.32
and it seems to compile the code to give me proper 16KB page size compliant results. I don't explicitly use any native code. (But I read that Flutter relies on native codes, so checked the .so
library files to see if they were aligned to support 16KB page size.) I also created a new virtual Android device supporting API 36 and also 16KB memory page size and tested my app thoroughly to see if ran well.
If possible, you could update your Flutter to latest stable release and recompile your code. You may also need to fix your AGP, and other versions used in your project (see the reference question that I've attached). Subsequently, dependency upgrades may or may not be needed. Hope this helps.
For your specific case, I can see you are on MacOS, so you should find objdump
in your system, or if not you can get it by installing the binutils
package.
After you have installed binutils
you should also have the objdump
command or the full command line llvm-objdump
(for my case, in Ubuntu, it was named llvm-objdump-18
. Use the command whichever is suitable for your case.) you can run the following command from the root folder of your project:
find | grep '\.so$' | xargs -I{} -exec llvm-objdump-18 -p "{}" | grep 'LOAD'
Or better, to see .so
filename before the ELF alignment information use:
find -type f | grep '\.so$' | xargs -I{} -exec sh -c 'echo "\n{}"; llvm-objdump-18 -p "{}" | grep "LOAD"'
(Remember to replace llvm-objdump-18
with the variant installed and available in you system.)
Then in the output, you should verify that all your .so
files are aligned to not less than 2**14
== 16KiB
(you can confirm and probably update your question with the output of the command.)
If all the .so
files are 2**14
or above then this means all your .so
libraries are compiled with 16KB page size.
Alternatively, you can also check the flutter configuration in file <flutter_install_dir>/engine/src/build/config/compiler/BUILD.gn
where for NDK version 26 and lower, the following option should be at least assigned to given size:
-Wl,-z,max-page-size=16384
For other NDK versions see this link.
As per your update to your question, I document my response comment here as well:
Your update shows that few of your .so libraries are not properly aligned using to 16KB ELF alignment. Those libraries are producing the result with 2**12 (== 4KB) at the end of the command output. Have you updated the APG version to 8.5.1 or above? What ndkVersion you are using? You must update AGP to version 8.5.1 or higher to be able to compile with 16KB page size. Backup your older version of the project/app. And then on a working copy of the project update AGP, ndkVersion then compile again and perform the same test on .so files again.
Your update says you're using AGP version: 8.5.1 NDK version: 28.2.13676358 which looks good. You have lots of .so
libraries and these seem to be indicating more of your dependency packages are using native code. (Again keep a backup of you older version version just to be safe and preserve all your efforts.) Now, in the newer copy of the project you just created and updated AGP and NDK versions, you should also update all the dependencies. You can see the dependency version table with command flutter pub outdated
which will list all your direct dependencies (all those that you find listed in your pubspec.yaml
file) and transitive dependencies (those packages that are required by your direct dependencies). You can then run flutter pub upgrade
to upgrade the dependencies as per the constraints in your pubspec.yaml
file. If this does not solve it, then you should run flutter pub upgrade --major-versions
to update all the dependencies to the available major versions. This should fix the issues. Additionally, you should also expect breaking changes in the code as here we're updating to the major version which may include breaking changes. If so, you will have to adapt the code. After all this you can recheck the alignment of your .so
files. If they are properly aligned, you then check in 16KB capable device or virtual device if everything works fine. And don't forget to use flutter clean
when appropriate. Hope this helps. Comment if you need more clarification.
References: