【发布时间】:2013-09-09 23:25:01
【问题描述】:
好的,我有一个本机应用程序,它在主线程之外运行,它需要 C++ 来访问一些 java 代码。我不断收到 FindClass() 错误,因为我的类加载器默认为我的系统,它不会加载我的应用程序的任何 java 源。
解决此问题的一种常见方法是在我的代码被分叉到另一个线程之前,在 JNI_OnLoad 处全局引用我的应用程序中的类,因此 ClassLoader 可以来自我的应用程序,其中可以找到我的所有类,但是因为我在使用 native_app_glue 实现 NativeActivity 时,JNI_OnLoad 永远不会被调用。
这里有一个方法“getClassLoader”的引用:https://groups.google.com/forum/#!msg/android-ndk/cKZRjSMUemw/MPXgmjYZ9qkJ
这应该可以工作,但是我找不到它,也不知道它的实现。
我只是在寻找一个例子,或者也是,谢谢。
【问题讨论】:
-
好的,我做到了。答案就在这里:stackoverflow.com/questions/14586821/…,只是,而不是这样做/is/my/java/class,而是这样做-this.is.my.java.class - 然后它工作;D
标签: android c++ android-ndk java-native-interface classloader