历来不希望自己是伸手党,所以长期习惯自己先尝试网上能否找到解决方法,所以现在被卡了两天,实在头晕脑胀,无奈希望能有人帮忙一下,先谢谢了。
cocos2.2.8
cocos2d-x3.6(通过cocos商店下载的frameworks)
使用cocos新建的项目,然后把自己以前项目的cpp文件复制到项目文件下,vs2013编译没问题,一切正常,也确定自己的编译环境没有什么问题
然后生成APK。经过努力目前也能够成功生成APK文件,而且可以在真机上运行,可是关键的问题是只有第一个layer,也就是只有一个画面,当点击界面中有回调函数的按钮,程序就自动退出了,如果是空按钮,也就是没有回调的按钮,一切正常。
经过自己的研究,可能是程序找不到文件的问题,然后就产生了疑问,造成现在问题的关键,是否是编译的时候,有些什么东西并没有被生成成功?该如何解决?
我尝试着把项目导入到eclipse中,发现直观看上去并没有什么问题。
因为对Android端的eclipse使用的太少,所以目前完全无从下手,希望有人能稍微指点一下方向,例如要解决这方面的问题,应该去了解一下什么方面的资料之类的,谢谢了!
贴一下项目内容,希望能够让愿意帮忙的人更了解一下我所遇见的问题。
auto star = MainLayer::create();
auto hero = HeroLayer::create();
layer.pushBack(star);
layer.pushBack(hero);
slptr slp;
for (int i = 0; i < slp->GetLine(“NewHero”); i++){
auto dict = slp->FinById(“NewHero”,i);
auto other = SkipLayer::createLayer(dict.asString());
layer.pushBack(other);
}
auto main = LayerMultiplex::createWithArray(layer);
addChild(main);
开始的Scene是用LayerMultiplex生成的几个layer,slptr slp;是自己封装的一个单例,
按钮的回调只是简单的layer跳转
void MainLayer::skipLayer(Ref* pSender)
{
MenuItem* item = (MenuItem*)pSender;
string File = "Data/NewHero.csv";
slptr<SQLiteHelper> slp;
//slp->DeleteTB("NewHero");
slp->initDB("NewHero", File);
File = "Data/HeroEquip.csv";
//slp->DeleteTB("HeroEquip");
slp->initDB("HeroEquip", File);
File = "Data/HeroRune.csv";
//slp->DeleteTB("HeroRune");
slp->initDB("HeroRune", File);
static_cast<LayerMultiplex *>(_parent)->switchTo(item->getTag());
slp.~Singleton_ptr();
}
唯一麻烦的是我在跳转的时候自己封装了Sqlite3命令,会从项目资源去加载CSV文件新建一个Sqlite数据库文件和一些相关的表
在WIN32的时候,如果新建的项目第一次编译的时候会发现跳转之后的第二个layer有一些资源并没有生成成功,只是第一次,应该是Sqlite数据库有一些问题,目前考虑自己先生成Sqlite数据库,直接读取数据库应该可以解决,但因该和生成APK文件没有关系才对,我个人这样觉得的。
那么到底是什么导致的生成的apk点击这个按钮导致程序退出的呢?