大佬們幫忙看看 哪里代碼出了問題
#include <jni.h>
#include <android/log.h>
#define TAG "xc"
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,TAG, __VA_ARGS__)
JavaVM *javaVm;//全域JVM
JNIEnv *jniEnv;//全域ENV
jclass globalClass1;//全域Jclass1
jclass globalClass2;//全域Jclass2
jclass jclass1;//全域Jclass1
jclass jclass2;//全域Jclass2
jmethodID jmid1;//全域方法1
jmethodID jmid2;//全域方法1
//方法1 提供給RPC呼叫 出錯
void TestFun1(char* Message) {
LOGD("TestFun1");
if (javaVm != NULL){
LOGD("TestFun1 獲取JVM成功");
}
if (globalClass1 != NULL){
LOGD("TestFun1 class獲取成功");
}
if (jmid1 != NULL){
LOGD("TestFun1 jmid1獲取成功");
}
int status = (*javaVm)->AttachCurrentThread(javaVm,&jniEnv,NULL);
LOGD("TestFun1獲取JNIENV");
if (status = JNI_OK) {
LOGD("TestFun1獲取env成功");
jstring str = (*jniEnv)->NewStringUTF(jniEnv,"Testfun1呼叫");
(*jniEnv)->CallStaticVoidMethod(jniEnv,globalClass1,jmid1,str);
}
}
//初始化成功
JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) {
LOGD("JNI_OnLoad 加載");
javaVm = vm;
LOGD("JNI_OnLoadvm 獲取完成");
int status = (*vm)->GetEnv(vm, (void **) &jniEnv, JNI_VERSION_1_6);
if (status == JNI_OK)
{
LOGD("JNI_OnLoad 獲取env成功");
jclass1 = (*jniEnv)->FindClass(jniEnv,"com/zidong/sotest/MainActivity");
globalClass1=(jclass)(*jniEnv)->NewGlobalRef(jniEnv,jclass1);
jmid1 = (*jniEnv)->GetStaticMethodID(jniEnv,jclass1, "showmessage1", "(Ljava/lang/String;)V");
if (globalClass1 != NULL){
LOGD("JNI_OnLoad class獲取成功");
}
if (jmid1 != NULL){
LOGD("JNI_OnLoad jmid1獲取成功");
}
//失敗
TestFun1("初始化測驗呼叫");
}
return JNI_VERSION_1_6;
}
void JNI_OnUnload(JavaVM* vm, void* reserved) {
LOGD("JNI卸載");
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/261165.html
標籤:Android
上一篇:微信小程式背景圖片
