Java调用JS,JS调用JAVA

JAVA 调用 JS

//Java端
//带参数的函数调用
final String exes = "cc.Global.setEcADVal('"+ var1 + "')";
//必须在GL线程中进行
Cocos2dxHelper.runOnGLThread(new Runnable() {
      @Override
       public void run() {
           //注意这里构造了带参数的函数
            Cocos2dxJavascriptJavaBridge.evalString(exes);
       }
});
//js端
 setEcADVal(jsonVal) {
 
 }

JS 调用 Java

//js端
jsb.reflection.callStaticMethod("org/cocos2dx/javascript/Test", "hello","(Z)V", true)});
//java端
 public static void Test(boolean isVisibility) {
 
 }

android.os.DeadObjectException 可能产生的原因:

  1. 有可能是java代码中存在未实例的变量,所以先检查下java代码。
  2. 也有可能是权限的问题,尝试在AndroidMainfest.xml中添加如下权限:
    <uses-permission android:name="android.permission.INTERNET"/>
  1. java调用js时,可能引擎未完成初始化。解决这个错误的方法是在js代码中确认引擎已经初始化完成(比如延迟个几秒)的时候:先使用js调用java,再使用java调用js。这样就会避免错误的产生。

附上Java和JS互相调用的详细内容: link

猜你喜欢

转载自blog.csdn.net/qq_28644183/article/details/125263231