android Flurry integration with NDK app

后端 未结 1 1652
北恋
北恋 2020-12-16 05:02

My Android application comprises two parts: frontend written in Java and game written in C++ using NativeActivity NDK stuff. I have a problem integrating Flurry into my appl

相关标签:
1条回答
  • 2020-12-16 05:45

    The answer is here: http://archive.is/QzA8

    In other words, NativeActivity cannot find a third-party class and instead of

    jni_env->FindClass("com/flurry/android/FlurryAgent");
    

    one should use

    jobject nativeActivity = state->activity->clazz;
    jclass acl = jni_env->GetObjectClass(nativeActivity);
    jmethodID getClassLoader = jni_env->GetMethodID(acl, "getClassLoader", "()Ljava/lang/ClassLoader;");
    jobject cls = jni_env->CallObjectMethod(nativeActivity, getClassLoader);
    jclass classLoader = jni_env->FindClass("java/lang/ClassLoader");
    jmethodID findClass = jni_env->GetMethodID(classLoader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;");
    jstring strClassName = jni_env->NewStringUTF("com.flurry.android.FlurryAgent");
    jclass flurryClass = (jclass)(jni_env->CallObjectMethod(cls, findClass, strClassName));
    jni_env->DeleteLocalRef(strClassName);
    
    0 讨论(0)
提交回复
热议问题