Java llama a JS, JS llama a JAVA

JAVA llama a 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 llama a Java

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

Posibles causas de android.os.DeadObjectException:

  1. Es posible que haya variables no instanciadas en el código de Java, así que verifique primero el código de Java.
  2. También puede ser un problema de permisos, intente agregar los siguientes permisos en AndroidMainfest.xml:
    <uses-permission android:name="android.permission.INTERNET"/>
  1. Cuando java llama a js, es posible que el motor no se inicialice. La forma de resolver este error es confirmar que el motor se ha inicializado en el código js (como un retraso de unos segundos): primero use js para llamar a java y luego use java para llamar a js. Esto evitará errores.

Adjunte los detalles de las llamadas mutuas entre Java y JS: enlace

Supongo que te gusta

Origin blog.csdn.net/qq_28644183/article/details/125263231
Recomendado
Clasificación