Tag: cocos2d x

在Cocos2dx中的主/ UI线程上运行代码

编辑:所以问题出在Java方面。 购买完成的听众没有被调用。 这非常有用: IabHelper PurchaseFinishedListener 我的Cocos2dx游戏在Android和iOS上运行良好。 只考虑给我带来麻烦的是Android In-App Billing。 我正在使用JNI从C ++调用Java。 Java代码在Google Play计费系统中来回传递,最终回调C ++代码,指示给用户多少钱(成功购买金额)。 从Java到C ++的调用正在做一些非常奇怪的事情。 运行的C ++代码应该更新两件事的显示。 但是它只更新一个并且它不一致。 此外,从Java到C ++的多次调用导致CCNodes忽略触摸并执行其他奇怪的操作。 在阅读了类似的问题后,我意识到Java或C ++调用可能不在主/ UI线程上。 所以我试着解决这个问题: // Java code IabHelper.OnConsumeFinishedListener mConsumeFinishedListener = new IabHelper.OnConsumeFinishedListener() { public void onConsumeFinished(Purchase purchase, IabResult result) { if (result.isSuccess()) { String sku = purchase.getSku(); if (sku.equals(IAB_ID_ABC)) { me.runOnUiThread(new Runnable() { public […]

jni调用java方法,该方法将自定义java接口作为参数

我正在cocos2d-x平台上开发插件项目,我想编写一些c ++包装器接口,通过jar SDK中的JNI调用java方法。 我知道如何使用JNI来调用静态java方法,但我对java函数中的interface参数感到困惑。 我有一个处理回调的cpp函数指针: typedef void (* MyCallback)(int responseCode, string arg1, set arg2); 我想写一个cpp包装器方法,如: static void MyCpp::setTags(set tags, MyCallback callback) //it use `JNI` to invoke java method setTags(Context context, Set tags, TagCallback callback). 我想在包装器中调用的java方法是 public static void setTags(Context context, Set tags, TagCallback callback) TagCallback是API用户实现的接口。 那么,有可能让TagCallback最终回调到MyCallback函数吗? 换句话说,我可以使用jni将cpp函数指针转换为java接口吗? 谢谢你的耐心 。 编辑:如果用户只想使用java,这里是如何使用setTag : public static void setTags(context, […]

在Eclipse Helios中使用C ++的Android Cocos2DX

我使用Eclipse Helios 3.6.1进行Java开发。 我想在同一个IDE中启动C ++开发,因此我安装了Autotools支持CDT,C / C ++开发工具,C / C ++库API文档hover帮助插件 。 现在写下面的语句时,我在HelloWorldScene.h文件中包含了#include“cocos2d.h” cocos2d::CCSprite * ccSprite; 我没有像coco一样写自动完成栏(模板提案)并从我的键盘按Ctrl + Space 。 可能是什么问题? 这可能会帮助您解决我的问题。 请点击这里 。 这是我点击右键单击项目 – >索引 – >搜索未解决的索引后得到的。 但我在这里添加了所有包含检查。 我认为这会导致内容辅助问题。 在这种情况下我该怎么办? 包容似乎是正确的。

Cocos2D-x游戏新鲜的Play商店甚至无法打开

我刚刚完成了我的第一个cocos2d-x游戏。 我在我的GNexus 4.1和其他较低的设备上测试了它,包括平板电脑。 但是,当购买并下载到Nexus 7时,它甚至不会打开。 它运行4.2,这可能是问题吗? 任何帮助,将不胜感激。 崩溃报告: java.lang.ExceptionInInitializerError at java.lang.Class.newInstanceImpl(Native Method) at java.lang.Class.newInstance(Class.java:1319) at android.app.Instrumentation.newActivity(Instrumentation.java:1054) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) at android.app.ActivityThread.access$600(ActivityThread.java:141) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5039) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.UnsatisfiedLinkError: Cannot load library: soinfo_relocate(linker.cpp:975): cannot locate symbol “__exidx_end” referenced by […]