【求助】CocosJavascriptJavaBridge.evalString 报错

  • Creator 版本:3.6.1

  • 目标平台:Android

  • 重现方式 : 必定重现

  • 首个报错:
    2024-11-20 00:30:12.773 2340-2537/com.monzero.android E/Cocos: 00:30:12 [ERROR]: E/ ScriptEngine::evalString catch exception:
    2024-11-20 00:30:12.774 2340-2537/com.monzero.android E/Cocos: 00:30:12 [ERROR]: E/ ERROR: Uncaught ReferenceError: director is not defined, location: (no filename):0:0
    STACK:
    - [0]anonymous@(no filename):1
    2024-11-20 00:30:12.774 2340-2537/com.monzero.android E/Cocos: 00:30:12 [ERROR]: [ERROR] file F:/CocosCreator/Creator/3.6.1/resources/resources/3d/engine/native/cocos/application/CocosApplication.cpp: line 154
    2024-11-20 00:30:12.774 2340-2537/com.monzero.android E/Cocos: 00:30:12 [ERROR]:
    Uncaught Exception:
    - location : (see stack)
    - msg : Uncaught ReferenceError: director is not defined
    - detail :
    - [0]anonymous@(no filename):1
    2024-11-20 00:30:12.775 2340-2537/com.monzero.android D/Cocos: 00:30:12 [DEBUG]: D/ JS: [ERROR]: (see stack) Uncaught ReferenceError: director is not defined - [0]anonymous@(no filename):1
    2024-11-20 00:30:12.776 2340-2537/com.monzero.android E/Cocos: 00:30:12 [ERROR]: E/ ScriptEngine::evalString script (no filename), failed!


本人使用Android Studio中的java脚本调用js时,报如上错误。以下是java脚本片段。

private static void enterGame(){
    CocosHelper.runOnGameThread(new Runnable() {
        @Override
        public void run() {
            CocosJavascriptJavaBridge.evalString("director.emit(\"enterGame\")");
        }
    });
}

我看了论坛其他帖子,这种写法应该没什么错吧,而且director为什么会not defined?麻烦各位大佬帮忙指教,谢谢~

import { director } from ‘cc’;
加上这个试试

我昨晚自己搞好了。不是cc项目内import的问题,因为ts自动import过了。解决方法,是在java里要写“cc.director.emit”