Как обновить локальную общую библиотеку для совместимости с устройствами Android 15 16KB?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как обновить локальную общую библиотеку для совместимости с устройствами Android 15 16KB?

Сообщение Anonymous »

Мы используем библиотеку Ananas в нашем приложении. После официальной документации, чтобы проверить демонстрацию Ananas в эмуляторе Android 15 с изображением системы на основе 16 кб, мы обнаружили, что приложение застряло (без сбоя) при применении фильтра для редактирования изображения приложение застряло на загрузке, а logcat Показывает следующую строку: < /p>

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

2025-01-14 19:27:52.368 16574-18462 nativeloader            io....amutkarshtiwari.ananasproject  D  Load /data/app/~~K2DsRcC_nLSnacu1r-e0kA==/io.github.iamutkarshtiwari.ananasproject-Sla3ZLIGIN1Ma-aDhtc6TA==/lib/x86_64/libphotoprocessing.so using ns clns-7 from class loader (caller=/data/app/~~K2DsRcC_nLSnacu1r-e0kA==/io.github.iamutkarshtiwari.ananasproject-Sla3ZLIGIN1Ma-aDhtc6TA==/base.apk!classes2.dex): dlopen failed: empty/missing DT_HASH/DT_GNU_HASH in "/data/app/~~K2DsRcC_nLSnacu1r-e0kA==/io.github.iamutkarshtiwari.ananasproject-Sla3ZLIGIN1Ma-aDhtc6TA==/lib/x86_64/libphotoprocessing.so" (new hash type from the future?)
Тестирование с помощью эмулятора Pixel 8a API 35 с изображениями System-Images/Android-35/Google_APIS_PLAYSTORE_PS16K/x86_64/. Если мы тестируем с эмулятором Pixel 7 API 35 System-Images/Android-35/Google_APIS_PLAYSTORE/x86_64/ он работает отлично, очевидно, что проблема связана с совместимостью с 16 КБ.
Иметь:
  • Обновленная targetsdkversion и compilesdk до 34, обновленные AGP до 8.6.0 и разрешенные ошибки компиляции.
  • Добавлен ndkversion = "27.2.12479018" in gradle.
  • Свяжите NDK с Gradle с

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

    externalNativeBuild {
    ndkBuild {
    path file('jni/Android.mk')
    }
    }
    
  • Перестройка LibphotoProcessing.so библиотека с использованием следующих команд (и обновляет собственный код для разрешения ошибок компиляции):
    < /ul>

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

    ~/Library/Android/sdk/ndk/27.2.12479018/ndk-build -C /MY_PROJECT_PATH/Ananas/ananas clean
    ~/Library/Android/sdk/ndk/27.2.12479018/ndk-build -C /MY_PROJECT_PATH/Ananas/ananas
    
  • Добавлена ​​app_support_flexible_page_sizes: = true in application.mk per docs.

    Но это все еще не работает. Запуск скрипта check_elf_alenment.sh из документов на APK проекта показывает, что библиотека все еще «не выдвинута».

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

    -e /var/folders/22/7bl_jpq137l883cghrfhxzt80000gn/T/app-debug_out_XXXXX.DA2PVl6sGv/lib/x86_64/libphotoprocessing.so: \e[31mUNALIGNED\e[0m (2**12)
    < /code>
    Любая помощь будет высоко оценена! Я понимаю, что библиотека была заархивирована, поэтому единственные варианты выясняют эту проблему для будущей совместимости или поиск другой библиотеки ... 
    [b] Обновление: [/b] я сделал Следующие изменения < /p>
    
    [*] Удаленный local_cflags < /code> from android.mk и установлен в блоке ndkbuild build.gradle cflags "-dandroid_ndk -ddisable_importgl -dandroid_support_fage_page_size = на "
  • Укажите ABIS, установив APP_ABI: = ARM64-V8A ARMEABI-V7A RISCV64 x86 x86_64 in application.mk и abifilters 'arm64-v8a', 'armeabi -v7a ',' riscv64 ',' x86 ',' x86_64 ' в блоке ndkbuild
  • Удаленные папки сборки и .GRADL br/> выполняет команды NDK ~/library/android/sdk/ndk/27.2.12479018/ndk -build -c/my_project_path/ananas/ananas clean и ~/library/android/sdk/ndk /27.2.12479018/ndk-build -c/my_project_path/ananas/ananas -b v = 1 ndk_log = 1
После компиляции проект, Фильтры теперь работают в демонстрационном приложении, используя тот же эмулятор Android 15 16 КБ, как указано ранее. Запуск эльфийский скрипт показывает x86_64 как выровненное сейчас -e /var/folders/22/7bl_jpq137l883cghrfhxzt80000gn/t/app-debug_out_xxxx.wqretumtai/lib/x86_64/libpocassing.so: \ e [32med \ e [32med \ e [\ e [\ e [32med \ e [\ e [\ e [32med \ e [\ e [32med \ e [\ e [32med \ e [\ e [32med \ e [\ e [32med \ e [\ e [32med \ e [\ e [\ e [32med \ e [\ e [32med \ e. /code> и запуск readelff для.>

Подробнее здесь: https://stackoverflow.com/questions/793 ... -16kb-devi
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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