Android ndk编译vector,Android Studio 2.2.3找不到 <vector>_android-ndk_开发99编程知识库

配置

操作系統: Ubuntu 16.04

Android Studio 版本: 2.2.3

密鑰代碼

~/project/build.gradle:buildscript {

repositories {

jcenter()

}

dependencies {

classpath 'com.android.tools.build:gradle:2.2.3'

}

}

. . .

~/project/library/build.gradle:apply plugin: 'com.android.library'

android {

. . .

defaultConfig {

. . .

externalNativeBuild {

cmake {

arguments '-DANDROID_TOOLCHAIN=clang',

'-DANDROID_STL=gnustl_static'

//I also tried '-DANDROID_STL=gnustl_shared', result is same

}

}

}

externalNativeBuild {

cmake {

path"src/main/cpp/CMakeLists.txt"

}

}

. . .

}

~/project/app/build.gradle:apply plugin: 'com.android.application'

android {

. . .

}

dependencies {

. . .

compile project(':library')

. . .

}

~/project/settings.gradleinclude ':app', ':library'

~/project/library/src/main/cpp/test.h :#include //vector is red, says"cannot find vector"

#include

class test {

private:

std::vector array;//std is red, says"can't resolve container std"

};

問題的描述

在文件中 ~/project/library/src/main/cpp/test.h#include 中的vector 為紅色。 將滑鼠移動到它將彈出的窗口,該窗口顯示 Cannot find'vector' 。 std::vector 中的std 也是紅色。 把滑鼠移到上面 Can't resolve container 'std'

這裡項目沒有編譯錯誤。 它可以成功編譯並安裝在我的手機上。 問題是它有語法錯誤。 我在某些變數上沒有完成代碼,如 test.h 中的array 。

我發現一些信息

我導入了項目茶壺包含 #include 。 Android Studio 為這個項目解析了 vector 和 std 符號。

我的問題

我做了什麼為什麼項目茶壺沒有這個問題? 我的項目和 teapots 之間的關鍵區別是,使後者能夠解決 vector 和 std,但我不能?

更新

我在 Android Studio 中創建了一個新項目。 在新建項目嚮導的步驟 1中,我檢查了 include C++ Support 。 在最後一步中,我為 C++ Standard 選項保留了默認的Toolchain Default 。 單擊 finish 按鈕后,Android Studio 自動為我創建了文件 native-lib.cpp 。 我在這個文件的第 3行添加了代碼 #include 。 這一次 Android Studio 正確解析了符號 vector 。 然後我為這個項目創建了一個新的MODULE 庫 mylibrary,在那裡我添加了 cpp 文件夾和 test.h,它還解析了符號 vector ( MODULE build.gradle的mylibrary 已經被正確地添加到了) 。 但是我的問題是我需要向現有項目添加 vector,而我現有的項目無法解析符號 vector 。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值