【问题标题】:android Flurry integration with NDK appandroid Flurry 与 NDK 应用程序集成
【发布时间】:2013-01-13 06:06:35
【问题描述】:

我的 Android 应用程序包括两部分:用 Java 编写的前端和使用 NativeActivity NDK 东西用 C++ 编写的游戏。我在将 Flurry 集成到我的应用程序时遇到问题。 Flurry 在 Java 部分中运行良好,但在 C++ 中崩溃。 更具体地说,调用

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

结果为@​​987654322@。

jni_env 变量没有损坏,因为我可以使用它获得一些 Intent 参数。

FlurryAgent.jar 被添加到libs 目录和.classpath。我什至检查了 FlurryAgent.jar 的“订购和导出”复选框(尽管我不知道这是什么意思)。没有任何帮助。

一个更详细的信息:我的应用程序分为库和应用程序部分。我已将 FlurryAgent.jar 添加到这两个部分并检查了两个部分的“订购和导出”,但它仍然没有帮助。清洁和重建也无济于事。我错过了什么吗?

【问题讨论】:

    标签: android flurry


    【解决方案1】:

    答案在这里:http://archive.is/QzA8

    换句话说,NativeActivity 找不到第三方类,而不是

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

    应该使用

    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);
    

    【讨论】:

    • 这确实是加载它的工作方法。但是,使用它,dalvik 报告: W/dalvikvm(21811): dvmFindClassByName 拒绝“com/flurry/android/FlurryAgent”。任何想法为什么?
    • 我也得到了相同的“dvmFindClassByName 拒绝 -class-”。你找到解决办法了吗?
    • ClassLoader.loadClass() 的参数是“二进制名称”,例如java.lang.String(参见 JLS 或 ClassLoader javadoc)。将出现的“/”替换为“。”在NewStringUTF 通话中。
    • 这个答案对我有用!只是一个小的更正:上面的链接已经失效,这里是同一个帖子:hi.baidu.com/letsherwel/item/23577c081e3b107fbfe97e23
    • 链接已损坏。可能应该用@dextor 提出的替换吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    • 2013-08-18
    • 2013-12-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-11
    相关资源
    最近更新 更多