Führen Sie Java-Code von cpp auf cocos2dx aus

Umgebung

cocos2dx 3.17 (JavaScript) Android

Problem

Apropos native auf Android von cocos2dx, Sie schreiben Code in Java, aber abhängig von der Bibliothek, die Sie verwenden, müssen Sie cpp berühren. Der Fluss von js-> java-> cpp. Im Gegenteil, in Bezug auf den Mechanismus der Ausführung von js-Funktionen von native gibt es java-> js, aber ich möchte cpp-> js machen. Ältere cocos2djs verwendeten "ScriptingCore :: evalString (Code)". Aber wenn ich cocos2dx aktualisieren würde, würde dies abstürzen.

Absturzbeispiel

https://github.com/cocos2d/cocos2d-x/issues/17718 https://github.com/cocos2d/cocos2d-x/issues/13807

Nach vielen Recherchen sollte JniHelper verwendet werden.

Beispiel aufrufen

http://developer.wonderpla.net/entry/blog/engineer/cocos2d-x_jni2/

Durch die Implementierung wie folgt wurde cpp-> java (-> javascript) realisiert.

Implementierung

#include "platform/android/jni/JniHelper.h"

void executeJavaScript()
{
    cocos2d::JniMethodInfo t;

    if (cocos2d::JniHelper::getStaticMethodInfo(t,
                                       "jp/example/java",       //Java-Klasse
                                       "executeJs",             //Name der Java-Methode (statisch)
                                       "(Ljava/lang/String;)V"  //Streit
    )) {

        // jstring - C++ representation of Java String
        //Konvertieren Sie den Namen der JS-Methode, indem Sie ihn als Zeichenfolge schreiben
        jstring stringArg = t.env->NewStringUTF("javascriptMethod('arg')");

        // call the method, with arguments
        t.env->CallStaticVoidMethod(t.classID, t.methodID, stringArg);
    }
}

Recommended Posts

Führen Sie Java-Code von cpp auf cocos2dx aus
Code Java von Emacs mit Eclim
Führen Sie gepackten Java-Code mit Befehlen aus
Führen Sie Nicht-Java-Anweisungen von Java aus
Erstellen Sie Java mit Mac vs Code
Arbeiten Sie mit Google-Tabellen aus Java
Beispielcode mit Minio aus Java
Suchen und Ausführen einer Methode aus einer Instanz mit Verarbeitung (Java)
Was ich aus Java gelernt habe, funktioniert mit Visual Studio Code
Bereiten Sie die Java-Entwicklungsumgebung mit VS Code vor
[JaCoCo (Java Code Coverage)] Verwendung mit NetBeans
[Java] Fluss vom Quellcode zur Ausführung
Führen Sie den in der Zwischenablage gespeicherten Java-Code aus.
Generieren Sie den Quellcode aus der JAR-Datei mit der JD-GUI des Java Decompiler-Projekts
Führen Sie Java-Code skriptweise aus
Führen Sie Rust von Java mit JNA (Java Native Access) aus.
Verwenden Sie native Bibliotheken von Scala über Java CPP + Java
Java-Code-TIPPS
Führen Sie eine statische Code-Analyse mit Checkstyle mit Java + Gradle durch
[Java] Stellen Sie die Zeit im Browser mit jsoup ein
Java-Beispielcode 02
Java-Beispielcode 03
Textextraktion in Java aus PDF mit pdfbox-2.0.8
Komfortablere Java-Codeabdeckung mit Jacoco 0.8.0
Verwenden Sie Matplotlib aus Java oder Scala mit Matplotlib4j
Erstellen Sie mit Gradle mit VSCode Java → Ausführen
Java-Beispielcode 01
Java-Zeichencode
Versuchen Sie, ein Java-Programm mit VS-Code zu debuggen
Erstellen Sie eine Java-Entwicklungsumgebung mit VS Code
Erste Schritte mit Java-Programmen mit Visual Studio Code
Erstellen Sie die VS Code + WSL + Java + Gradle-Umgebung von Grund auf neu
[Java 11] Ich habe versucht, Java auszuführen, ohne mit Javac zu kompilieren
Rufen Sie eine Methode mit Kotlins Rückrufblock von Java aus auf
Warum können Sie Java mit Visual Studio Code entwickeln?
Ich habe versucht, nativen Java / Objective-C-Code von Flutter aus aufzurufen
[Hinweis] Erstellen Sie mit Docker eine Java-Umgebung von Grund auf neu
So erstellen Sie eine Java-Entwicklungsumgebung mit VS Code
Lesen Sie Temperatur / Luftfeuchtigkeit von Raspberry Pi 3 & DHT11 mit Java ab
Installieren Sie Java mit Homebrew
Rufen Sie Java von JRuby aus auf
Lombok mit VS Code
Änderungen von Java 8 zu Java 11
Summe von Java_1 bis 100
Wechseln Sie die Plätze mit Java
Installieren Sie Java mit Ansible
Eval Java-Quelle von Java
Bequemer Download mit JAVA
Greifen Sie über Java auf API.AI zu
Schalten Sie Java mit direnv
Von Java zu Ruby !!
Erstellen Sie Java mit Wercker
Endian-Konvertierung mit JAVA
Überwachen Sie Quellcodeänderungen mit der Guard-Shell und erstellen und führen Sie sie automatisch aus
So kehren Sie die Kompilierung der Apk-Datei in Java-Quellcode mit MAC um
Suchen Sie die Adressklasse und den Adresstyp aus der IP-Adresse mit Java
[Java] Zeichensatz mit Apathce Tika abrufen / String von Zeichensatz initialisieren [Kotlin]
Erstellung einer Java-Webanwendungsentwicklungsumgebung mit VS-Code (struts2)