未定义引用:cellAtIndex(int)?隐式转换?

Undefined reference to : cellAtIndex(int) ? implicit conversion?

看来这不是平常的事"undefined reference to :....."。 我认为这可能与隐式转换有关。 我把下面的代码放在 HelloWorldScene.h

ssize_t cellNumb;
cocos2d::extension::TableView* itemSlots;

每次我尝试使用

itemSlots->cellAtIndex(cellNumb);

在cpp中,刚刚编译apk文件时出现错误。在 VS 中不处于调试模式。

我认为使用该代码调试项目非常好,这很奇怪。该错误仅在制作 apk 文件时发生。这是非常罕见的情况,不是吗?为什么 ssize_t 变量突然变成 int 了?很明显 cellAtIndex 方法需要 ssize_t。这就是为什么我将 cellNumb 声明为 ssize_t!

我也这样试过:

itemSlots->cellAtIndex((ssize_t) cellNumb);

还有这个:

itemSlots->cellAtIndex(static_cast <ssize_t> cellNumb);

我也把上面的 ssize_t 改成 size_t , long int, unsigned int 等等,但是每次都失败了。我搜索了一百次,但我没有找到与我的案例相匹配的正确答案。

我检查并添加了 Anroid.mk 中的所有 cpp 文件和 SDK JDK NDK ANT.. 它们安装良好,在 VS 2015 中调试也很清楚。

可能是您升级了 cocos2d-x 库,但仍然有一些旧的 Android 相关文件(可能是 makefile)。

包含头文件

包括“cocos-ext.h”