Android NDK 源代码已成功编译和构建 - 但函数 'to_string' 无法在 Eclipse IDE 中解析

Android NDK Source Compiled & Build Successfully - But Function 'to_string' could not be resolved in Eclipse IDE

我搜索了如何在 android ndk 中使用 to_string()。经过长时间的搜索,从这个 link,我按照所说更改了 Application.mk 文件。并且只能从终端正确编译和构建 cpp 源。

        Terminal output :
         > ndk-build
        Android NDK: WARNING: APP_PLATFORM android-21 is larger than android:minSdkVersion 9 in        
/<some path>/Android/Exercise01/AndroidManifest.xml    
    [armeabi-v7a] Install        : libndkfoo.so => libs/armeabi/libndkfoo.so

但是在 ecplise IDE 中,我仍然收到错误 "Function 'to_string' could not be resolved"。因此,从 IDE 我无法 运行 android 应用程序。 (注意:在使用std::to_string之前,源代码编译正确)

我尝试包含如下头文件(在项目属性下->C/C++ general->Path and Symbols->GNU C++)

vstring.h 来自 //android-ndk-r10d/sources/cxx-stl/gnu-libstdc++/4.9/include/ext
&
basic_string.h 来自 //android-ndk-r10d/sources/cxx-stl/gnu-libstdc++/4.9/include/bits

但运气不好。

Androi.mk 文件

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_LDLIBS    := -llog
TARGET_PLATFORM := android-21
TARGET_ARCH_ABI := armeabi-v7a
TARGET_ABI := android-21-armeabi-v7a # concatenation of above two variables
# Here we give our module name and source file(s)
LOCAL_MODULE    := ndkfoo
LOCAL_C_INCLUDES := $(LOCAL_PATH)/header
LOCAL_SRC_FILES := src/NativeFunction.cpp src/clsArithmeticParser.cpp
include $(BUILD_SHARED_LIBRARY)

Application.mk

#APP_STL := stlport_static
APP_STL:=c++_static       

我知道,我犯了一些小错误,但很长时间都找不到。任何 solution/suggestion 表示赞赏。

已编辑:
我只能在下面的技巧中通过 eclipse 使用 std::to_string & std::stoll。这些可以在极少数情况下帮助某些人。所以添加这一点来测试通过eclipse IDE对c++11的支持。仅在源文件或头文件打开时显示错误。只需关闭开源文件文档(.h、.c、.cpp)。关闭并重新打开日食。现在可以通过 android 模拟器编译和 运行 了。

您使用哪个版本的 Eclipse IDE?尝试更新到最新的火星版本,它可能会解决你的问题。

在参考了@Khaled Lakehal 的回答后,我自己为我的 question.Hope 发布了这个答案,这可能会对某些人有所帮助。

按照以下步骤使其工作:

  1. 将月食版本从 Luna 更新到最新的 Mars 2
  2. 从旧版本的eclipse导入现有项目 使用 -> 导入 -> 现有 Android 代码到工作区
  3. 导入后 C/C++ 项目转换有一些问题。所以按照这个 link 撤消 C/C++ 项目转换
  4. 将项目新转换为 C/C++。
  5. 为了消除错误,我参考了这个 link,并只选择了 "Run with build"
  6. 关闭并重新打开 IDE

现在可以使用 std::to_string 和 std::stoll 功能了。