Android NDK: не удается найти точку выполнения - PullRequest
0 голосов
/ 04 января 2019

Я отлаживаю свое Android-приложение в Android Studio, и оно не может найти точку выполнения нативного кода, в результате чего переменные также не могут быть показаны:
img1 World::flushвыглядит следующим образом:

void World::flush() {
    LOGE_LS("Flushing cached chunks...");
    for (chunk_lru_li *i = lru, *j; i != nullptr; i = j) {
        if (i->item->flag == CHUNK_LI_DIRTY) {
            LOGE_LS("Saving chunk (%d,%d).", i->item->key.x_div16, i->item->key.z_div16);
            i->item->val->save();
            LOGE_LS("Saved chunk.");
        }
        j = i->next;
        delete i->item->val;
        delete i->item;
        delete i;
    }
    lru = nullptr;
    mru = nullptr;
    num_chunks = 0;
    memset(chunks, 0, sizeof(chunks));
    LOGE_LS("Flusing done.");
}
  1. Тип отладчика был установлен на Native.

  2. Отображаются потоки и стек вызовов.

  3. Раньше это работало несколько месяцев назад в одном проекте.

  4. Использовалась версия релиза совместно используемой библиотеки, но это не является причиной.

  5. Я пробовал много переменных различных функций в стеке вызовов, не только lru на скриншоте.

  6. Варианты сборки всех модулей: debug (в противном случае приложение вообще не будет отлаживаться)

Спасибо мяу ~

1 Ответ

0 голосов
/ 05 января 2019

Решено поиском в блоге CSDN:

  1. Найдите свой модуль, содержащий код c / c ++, откройте его файл iml на панели Project: enter image description here
  2. найти этот тег: <facet type="native-android-gradle" name="Native-Android-Gradle"> enter image description here
  3. под тегом найти <option name="SELECTED_BUILD_VARIANT" value="release" />
  4. изменить release на debug,Если это уже debug, то кажется не причина вашей проблемы.
  5. Сохраните и закройте файл, затем выполните синхронизацию Gradle.
  6. Это должно быть исправлено сейчас.Если нет, чистая сборка может или не может помочь.

Ссылка на оригинальный ответ в блоге CSDN: https://blog.csdn.net/wangyun522/article/details/78820569
Это не на английском языке , и вы, возможно, не захотите проверить его.

...