Qt 調用 java代碼,用於Android app的開發


Qt 調用java代碼的一個示例,用於Android app的開發,需要在.pro文件中加入

QT += androidextras

Java使用JNI是為了使用C++的函數,而Qt這里使用JNI正好相反,是為了使用Java的函數

#include <QAndroidJniObject>
#include <QAndroidJniEnvironment>

    QAndroidJniEnvironment env;
    QAndroidJniObject str = QAndroidJniObject::fromString("Hello Qt on Android test");
    QAndroidJniObject separator = QAndroidJniObject::fromString(" ");
    QAndroidJniObject words = str.callObjectMethod("split",
                                         "(Ljava/lang/String;)[Ljava/lang/String;",
                                         separator.object<jstring>());
    jint len = str.callMethod<jint>("length");
    qDebug() << "--------------------------------------------" << len;

    jint size = env->GetArrayLength(words.object<jobjectArray>());
    QAndroidJniObject elem;
    for(int ii=0;ii<size;++ii){
        QAndroidJniObject elem = env->GetObjectArrayElement(words.object<jobjectArray>(), ii);
        qDebug() << "--------------------------------------------" << elem.toString();
    }

 輸出:

D libHHT_armeabi-v7a.so: -------------------------------------------- 24
D libHHT_armeabi-v7a.so: -------------------------------------------- "Hello"
D libHHT_armeabi-v7a.so: -------------------------------------------- "Qt"
D libHHT_armeabi-v7a.so: -------------------------------------------- "on"
D libHHT_armeabi-v7a.so: -------------------------------------------- "Android"
D libHHT_armeabi-v7a.so: -------------------------------------------- "test"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM