Android App Fake 16 КБ Проверка размера страницы - как проверить и исправить выравнивание ELF?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Android App Fake 16 КБ Проверка размера страницы - как проверить и исправить выравнивание ELF?

Сообщение Anonymous »

Когда я запускаю свое приложение в Android Studio, я вижу это уведомление: < /p>

apk my_app.apk не совместим с устройствами 16 кб. В некоторых библиотеках есть сегменты нагрузки, не выровненные по границам 16 КБ:
dump_syms/linux/dump_syms.bin! Для получения дополнительной информации о совместимости с устройствами 16 КБ посетите Developer.Android.com/16KB-PAGE-size.

Конфигурация: < /p>

Код: Выделить всё

Android Gradle Plugin Version: 8.10.1

Gradle Version: 8.11.1

Compile SDK Version: 36 (API 36.0 "Baklava"; Android 16.0)

Build Tools Version: 36.0.0

NDK Version: 29.0.13846066

Java Source Compatibility: Java 17

Target Compatibility: Java 17

Kotlin JVM Target: 17

View Binding: Enabled
< /code>
Шаги I предприняли: < /p>
Проверено APK с анализом APK в Android Studio
Это все еще показало предупреждение о выравнивании 16 кб. < /p>
Запустил SCECT_ELF_ALIGNMENT.SH Script (Linux /MacOS) в соответствии с официальной документацией: < /P> 
Итак, скрипт показывает, что все выровнен.unzip my_app_2025-08-23_05_52_13-release.apk -d /tmp/my_apk_out
< /code>
Проверенное содержание в справочнике LIB: < /p>
/tmp/my_apk_out/lib/arm64-v8a/libandroidx.graphics.path.so
/tmp/my_apk_out/lib/arm64-v8a/libdatastore_shared_counter.so
/tmp/my_apk_out/lib/armeabi-v7a/libandroidx.graphics.path.so
/tmp/my_apk_out/lib/armeabi-v7a/libdatastore_shared_counter.so
/tmp/my_apk_out/lib/x86/libandroidx.graphics.path.so
/tmp/my_apk_out/lib/x86/libdatastore_shared_counter.so
/tmp/my_apk_out/lib/x86_64/libandroidx.graphics.path.so
/tmp/my_apk_out/lib/x86_64/libdatastore_shared_counter.so
Затем я проверил каждый файл .so, используя:
~/library/android/sdk/ndk/29.0.13846066/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdum /tmp/my_apk_out/lib//.so | Греповая загрузка < /p>
Пример вывода: < /p>
LOAD off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**14
LOAD off 0x0000000000001c40 vaddr 0x0000000000005c40 paddr 0x0000000000005c40 align 2**14
LOAD off 0x0000000000001fd0 vaddr 0x0000000000009fd0 paddr 0x0000000000009fd0 align 2**14
< /code>
Все файлы .so показали выровну 2 ** 14, что означает, что они выровнены на 16 кб. Это говорит о том, что APK не совместим с устройствами 16 КБ из -за Dimp_syms/linux/dimb_syms.bin.
Итак, почему это предупреждение все еще появляется? Файл?>

Подробнее здесь: https://stackoverflow.com/questions/797 ... -alignment
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»