Android NDK:找不到执行点

时间:2019-01-04 04:33:57

标签: android android-studio android-ndk lldb

我正在Android Studio中调试我的Android应用,但它找不到本机代码的执行点,因此,变量也无法显示:
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 :(得分:0)

通过在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
不是英语,您可能不想签出。