Android:如何通過c++來呼叫java程式:接上篇
設備/引擎:Mac(11.6)/cocos
開發工具:Android studio(4.1.2)
開發語言:c++/java
開發需求:保存圖片到手機相冊
上篇說到如何保存圖片到手機相冊,但所有代碼均為java撰寫,如果專案主要以c++為主,則需要考慮通過c++來呼叫java代碼,
c++呼叫部分代碼如下:
JniMethodInfo minfo;
bool isHave = JniHelper::getStaticMethodInfo(minfo,"包名/MainActivity","rtnActivity","()L包名/MainActivity;");
if(!isHave)
{
CCLOG("jni:不能獲取單例");
}
else
{
CCLOG("jni:可以獲取單例");
jobject jobj = minfo.env->CallStaticObjectMethod(minfo.classID, minfo.methodID); //獲取單例物件
bool isHaveNoStaticMethod = JniHelper::getMethodInfo(minfo,"包名/MainActivity","java中的方法", "(引數)V"); //引數如果不是string型別的,則直接連著寫即可:如:IF-整型,浮點型,若是string型別則需要這樣寫:Ljava/lang/String;
if (!isHaveNoStaticMethod)
{
CCLOG("jni:alertDiaShowt方法不存在");
}
else
{
CCLOG("jni:alertDiaShow方法存在");
jstring jdata = minfo.env->NewStringUTF(name);
minfo.env->CallVoidMethod(jobj, minfo.methodID, jdata);
}
}
CCLOG("jni-java函式執行完畢");
只需要在指定位置呼叫java中的方法即可,
希望給大家提供一些幫助!!!有什么問題需要討論的可以評論私信歡迎討論~
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/397488.html
標籤:其他
