android - android NDK:找不到执行点
问题描述
我在 Android Studio 中调试我的 Android 应用程序,它未能找到本机代码的执行点,因此,变量也无法显示:看起来像这样:
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.");
}
调试器类型设置为
Native
。显示线程和调用堆栈。
这曾经在几个月前在同一个项目中工作。
使用了共享库的发布版本,但似乎不是原因。
我在调用堆栈中尝试了许多不同函数的变量,而不仅仅是
lru
屏幕截图。所有模块的构建变体都是
debug
(否则应用程序根本无法调试)
谢谢喵~
解决方案
通过在CSDN博客上搜索解决:
- 找到包含 c/c++ 代码的模块,在面板
上打开它的
iml
文件:Project
- 找到这个标签:
<facet type="native-android-gradle" name="Native-Android-Gradle">
- 在标签下找到
<option name="SELECTED_BUILD_VARIANT" value="release" />
- 更改
release
为debug
. 如果它已经是debug
那么它似乎不是你的问题的原因。 - 保存并关闭文件,然后进行 Gradle 同步。
- 现在应该修好了。如果没有,干净的构建可能会也可能不会有帮助。
CSDN博客原始答案链接:https ://blog.csdn.net/wangyun522/article/details/78820569不是英文
的,你可能不想查看。
推荐阅读
- tensorflow - Tensorflow 对象检测 API:对于带有自定义数据的 ssd + mobilenetv2,训练卡在 step=0
- vega-lite - 有遮挡时,vega-lite刻度z-index?
- firebase - FLUTTER Argument 不能分配给 Parameter 类型
- performance-testing - Octoperf - 指定自定义/第三方依赖项 - Octoperf 从哪里提取依赖项?
- swift - 如何创建基于计时器的“if”语句
- google-sheets - 谷歌表格:制作计数摘要(用于条形图),解析逗号分隔的数组,其中已经有逗号
- python-3.x - 当使用 matplotlib.dates 时,Pandas Dataframe 图不显示日期
- c# - 为特定的 NLog 实例设置 ValueFormatter?
- computer-vision - Open3d:如何创建 icosphere/测地线多面体球体?
- google-apps-script - 按下分号而不是句点时会激活 Google 脚本自动完成功能