【发布时间】:2023-03-09 22:10:02
【问题描述】:
我一直在 android eclipse 环境中构建我的 android 应用程序。构建我的 c++ 代码并使用 ndk-build 独立编译它。这很好用。
我需要调试 logcat 突然抛出的 sigsegv 错误。
所以我将 Eclipse 中的项目切换为“在 android 中添加本机代码”。现在它会调试我的 c++ 代码,但每次我使用任何 std 组件(例如 vector)时都会给我一个错误,因此我无法运行代码,因为它包含错误。
项目在之前的配置上运行良好。我相信我为 std 支持添加了一个库。
知道如何正确调试本机代码吗?
感谢您的帮助
更新 我完全重新安装了我的 sdk、eclipse(这次是juno)和所有插件。不用找了。错误检查无法识别 java 和 std 相关的东西:
#include <jni.h>
using namespace std;
带有红色下划线。
c++ 的其余部分被正确识别。
更新2
当我将 ${NDKROOT}/sources/cxx-stl/gnu-libstdc++/include 添加到路径和包含时,java 语句已经包含在内。净矢量尚未,我也尝试添加 ${NDKROOT}/sources/cxx-stl/stlport/stlport 但它还没有解决矢量问题。如果禁用错误检查,则项目编译,如果我犯了语法错误,编译器会警告我。这对我来说没问题。
【问题讨论】:
-
在 Eclipse 中编写 C++ 代码时,您是否获得了代码辅助和自动错误检查功能?
-
@25061987 是的,我在 c++ 中获得了代码帮助和错误检查。问题是代码检查无法识别来自 java (#include
) 和 std (使用命名空间 std;) 的元素,其余的工作正常。我认为这可能与我必须将 stlport 添加到我的 application.mk 文件而 eclipse 构建器没有看到这一点有关。 -
我在我的 Java 项目中使用 Cocos2D-X C++ include。并将我的 java 项目转换为 C++ 项目。当我使用 cocos2D-X 类时,写半个类名并按 Ctrl + Space 无助于完成类,因此它没有告诉我可以对特定对象类型使用的方法。就像我们在 java 项目中使用外部 .jar 时,它提供了智能感知。你知道可能是什么问题吗?或者你也面临同样的问题?
-
@25061987 不,这在我的项目中运行良好。 Eclipse 刚刚超过标准。我认为这应该是一个单独的问题,但您可能应该将您的项目转换为 c++。
-
我已将其添加为单独的问题here。我还将 android 项目转换为 C++。如果您发现任何问题,请随时编辑我的问题。
标签: java android c++ eclipse debugging