все:
У меня есть Android-приложение с включенной сборкой NDK, размер собственной общей библиотеки с символами отладки составляет около 2G. В моем скрипте Gradle есть опция упаковки,
packagingOptions {
doNotStrip '**/*testcore*.so'
}
Если я закомментировал блок, я могу запустить приложение без проблем. Если я оставлю блок для запуска/отладки приложения, я столкнусь с проблемой нехватки памяти во время задачи упаковки, например так:
Execution failed for task ':app:packageXXXXXXXXDebug'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
> java.lang.OutOfMemoryError (no error message)
Я попытался увеличить память в файле gradle.properites до большого числа,
org.gradle.jvmargs=-Xmx8g
Вроде не особо помогает. Я использую Android Studio 4.1.1 с плагином 4.0.1. (Раньше он работал с Android Studio 4.0.1 с 3.5.0).
Поскольку нам нужно часто выполнять отладку в нативном коде, нам нужно развернуть нативную библиотеку, не удаляя символы отладки. Любое предложение или решение? Спасибо!
Я бы предложил удалить символы при упаковке APK, а затем во время отладки сообщить LLDB о местонахождении неразрезанных двоичных файлов, добавив его в путь поиска https://stackoverflow.com/a/38426653/5954246 или проще, с помощью target symbols add <file>.so. LLDB автоматически сопоставляет файл разделенных символов с источниками, так что, надеюсь, это должно работать.