java - 将Android库集成到cocos2D for Android release(调用JavaScriptJavaBridge_callStaticMethod失败)
问题描述
我正在尝试将 android 库 (.aar) 集成到 cocos2D Android 版本中。
虽然我可以导入 android 库,但我无法调用库中的类函数。
这就是我从 cocos2D javascript 处理程序调用 Android 函数的方式。
jsb.reflection.callStaticMethod('org/cocos2dx/javascript/myDialog', 'showAlertDialog', '(Ljava/lang/String;Ljava/lang/String;)V', 'MyAlert', 'This is my first Alert from cocos2d' )
Android 库类
package org.cocos2dx.javascript;
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.util.Log;
public class myDialog extends Activity {
private static myDialog cam = null;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
cam = this;
}
public static void showAlertDialog(final String title,final String message) {
Log.i(title, message);
//we must use runOnUiThread here
cam.runOnUiThread(new Runnable() {
@Override
public void run() {
AlertDialog alertDialog = new AlertDialog.Builder(cam).create();
alertDialog.setTitle(title);
alertDialog.setMessage(message);
alertDialog.show();
}
});
}
}
下面是我得到的控制台警告
2020-07-01 16:47:46.514 26242-26339/org.cocos2d.demo E/JavaScriptJavaBridge: [ERROR] (C:/start_project/build/jsb-default/frameworks/cocos2d-x/cocos/scripting/js-bindings/manual/JavaScriptJavaBridge.cpp, 598): call valid: 0, call.getArgumentsCount()= 2
2020-07-01 16:47:46.514 26242-26339/org.cocos2d.demo E/JavaScriptJavaBridge: [ERROR] Failed to invoke JavaScriptJavaBridge_callStaticMethod, location: C:/start_project/build/jsb-default/frameworks/cocos2d-x/cocos/scripting/js-bindings/manual/JavaScriptJavaBridge.cpp:604
我已经为此工作了3天。但找不到任何解决方案。任何形式的帮助将不胜感激
从 cocos2d 调用 java 函数的 文档 文档相当简单,同样遵循了同样的方法,但没有成功。
解决方案
推荐阅读
- json - 使用 vb 反序列化没有固定 KEY 的 JSON 字符串
- bash - 调用roslaunch后自动终止所有节点
- python - 有没有一种简单的方法可以将用户输入作为整数并使用该整数作为下一个问题被问多少次的数量?
- mysql - MySQL 中的交叉应用
- x86-64 - 现代英特尔处理器中的推测性加载和存储是如何发生的?
- powershell - 使用 Powershell 删除过期证书
- java - 电子表格控件fx中jTable的getValueAt和setValueAt是否有等效方法?
- ruby-on-rails - LoadError:库版本不兼容,使用 capistrano 部署到 Digital Ocean 时
- c# - 图书馆未注册。(来自 HRESULT 的异常:0x8002801D (TYPE_E_LIBNOTREGISTERED))
- jquery - 使用嵌套布局后出现未捕获的错误:Uncaught TypeError: jQuery(...).editable is not a function