我正在尝试使用NDK和Eclipse CDT将以下简单的C ++代码编译为本机Android代码:
#include <vector>
using namespace std;
class Pt {
public:
Pt(int _x, int _y);
int x;
int y;
};
Pt::Pt(int _x, int _y){
x = _x;
y = _y;
}
void test(){
std::vector<Pt> pts;
pts.push_back(Pt(2,3));
int i = pts[0].x; //error here
}
我可以从命令行编译代码ndk-build.cmd
没有问题,我甚至可以在Eclipse中编译代码。问题是在最后一行(这里有//错误注释),Eclipse编辑器报告以下错误:
Field 'x' could not be resolved
可能的解决方案是:
pts[0].x
:int i = ((Pt)pts[0]).x;
Pt apt = pts[0]; int i = apt.x;
(令人惊讶的是,这有效)我花了将近2天的时间尝试使用自定义路径设置eclipse以包含文件,使用索引器进行游戏,升级到最新的NDK以及我能想象的其他所有内容。问题仍然存在。这个问题显然出现在每个采用参数化类型的类中(不仅仅是向量)。 虽然Eclipse确实编译了代码,但报告此错误的事实导致Android项目被标记为“有错误”,因此无法将其作为一个整体运行。
非常感谢任何帮助, 感谢