好的,我有一个 native 应用程序,它运行在主线程之外,它需要 C++ 来访问一些 java 代码。我一直在使用 FindClass() 出错,因为我的类加载器默认为我的系统,它不会加载我应用程序的任何 Java 源代码。
一个常见的解决方法是在我的代码被 fork 到另一个线程之前,在 JNI_OnLoad 全局引用我的应用程序中的类,这样 ClassLoader 就可以来 self 的应用程序,它可以找到我所有的类,但是因为我'在使用 native_app_glue 实现 NativeActivity 时,永远不会调用 JNI_OnLoad。
这里有一个方法“getClassLoader”的引用:https://groups.google.com/forum/#!msg/android-ndk/cKZRjSMUemw/MPXgmjYZ9qkJ
这应该可以工作,但是我找不到它,也不知道它的实现。
我只是在寻找一个例子,谢谢。
最佳答案
好的,我做到了。
答案在这里:android Flurry integration with NDK app ,只是,而不是做 this/is/my/java/class ,而是做 this.is.my.java.class - 然后它工作;D
关于安卓NDK : How to get a Class Loader With a NativeActivity and native_app_glue?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18708564/