
cocos2d Android调用Lua回调函数失败
查看日志发现lua调用JAVA的函数是成功的,但是在用JAVA调用lua回调函数的时候发现callLuaFunctionWithString被执行了,但是没有任何错误提示...
查看日志发现lua调用JAVA的函数是成功的,但是在用JAVA调用lua回调函数的时候发现callLuaFunctionWithString被执行了,但是没有任何错误提示,后面回调函数里面该输出的东西没有输出
------------------------lua--------------------------------
local function callBackShareToWeChat(result)
print("callBackShareToWeChat, string from JAVA:"..result)
--略
end
function bridge.shareToWeChat(scene, strTitle, strContent, strUrl)
local methodName = "shareToWeChat"
local sig = "(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V"
if cc.PLATFORM_OS_ANDROID == targetPlatform then
local args = {scene, strTitle, strContent, strUrl, callBackShareToWeChat}
local ok, ret = luaj.callStaticMethod(javaClassName, methodName, args, sig)
if not ok then
print("------------Android shareToWeChat fail")
end
end
end
---------------------------lua end--------------------------------------
---------------------------------java-------------------------------------
public static void shareToWeChat(int scene, String title, String description, String url, int callBack){
Log.i("WXEntryActivity", APP_ID_ANDROID_WECHAT);
callBackShareId = callBack;
Log.i("WXEntryActivity", callBack);
final String resultString = "type=0,result=failed";
__activity.runOnGLThread(new Runnable() {
@Override
public void run() {
Log.i("WXEntryActivity", resultString);
Cocos2dxLuaJavaBridge.callLuaFunctionWithString(AppActivity.callBackShareId, resultString);
Cocos2dxLuaJavaBridge.releaseLuaFunction(AppActivity.callBackShareId);
}
});
return;
-----------------------------java end-----------------------------------------
为了调试我已经把一些不必要的代码省掉了
我把Cocos2dxLuaJavaBridge.callLuaFunctionWithString的返回值输出了,是0,结合luaj的C++代码,应该是成功调用了那个lua函数的,可是为什么没有输出呢? 展开
------------------------lua--------------------------------
local function callBackShareToWeChat(result)
print("callBackShareToWeChat, string from JAVA:"..result)
--略
end
function bridge.shareToWeChat(scene, strTitle, strContent, strUrl)
local methodName = "shareToWeChat"
local sig = "(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V"
if cc.PLATFORM_OS_ANDROID == targetPlatform then
local args = {scene, strTitle, strContent, strUrl, callBackShareToWeChat}
local ok, ret = luaj.callStaticMethod(javaClassName, methodName, args, sig)
if not ok then
print("------------Android shareToWeChat fail")
end
end
end
---------------------------lua end--------------------------------------
---------------------------------java-------------------------------------
public static void shareToWeChat(int scene, String title, String description, String url, int callBack){
Log.i("WXEntryActivity", APP_ID_ANDROID_WECHAT);
callBackShareId = callBack;
Log.i("WXEntryActivity", callBack);
final String resultString = "type=0,result=failed";
__activity.runOnGLThread(new Runnable() {
@Override
public void run() {
Log.i("WXEntryActivity", resultString);
Cocos2dxLuaJavaBridge.callLuaFunctionWithString(AppActivity.callBackShareId, resultString);
Cocos2dxLuaJavaBridge.releaseLuaFunction(AppActivity.callBackShareId);
}
});
return;
-----------------------------java end-----------------------------------------
为了调试我已经把一些不必要的代码省掉了
我把Cocos2dxLuaJavaBridge.callLuaFunctionWithString的返回值输出了,是0,结合luaj的C++代码,应该是成功调用了那个lua函数的,可是为什么没有输出呢? 展开
展开全部
花姑子《爱歌和鸣》:一日夫妻,岂止百日恩。看那迷雾,那寒星,那高山,那莽林,管它路转峰回山阻水隔,自有那身身相许的拳拳心。滴水之恩,何止报之涌泉,听那长嚎,那呻吟,那凄泣,那悲鸣,管它情天苍苍恨海茫茫,自有那与共生死的殷殷情。啊,剪不断,啊,理还乱,因为心的许、情的与,除了花前月下闺中唱酬,也会有刀风剑雨,乱红摧折悲落英。啊,只要灵犀一点,又何论人神仙妖、狐鬼精灵。拨动心的弓弦、情的丝竹,且听那人神共泣的爱歌和鸣。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你省掉了不该省的
更多追问追答
追问
那你倒是告诉我有什么地方不对啊?
追答
把你所谓的“不必要的代码”给我看看
本回答被提问者采纳

你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询