在Monodroid中我试图通过JNIEnv访问自定义Java类。当我在主项目中添加类时,我可以在主项目和库项目中访问它。
例如: 如果jniTest.java是项目A中的AndroidJavaSource文件,那么
IntPtr javaClass = JNIEnv.FindClass("com/company/application/jniTest");
同时适用于项目A和库B.但是,如果我更改它以便我将相同的文件重命名为库B中的jniText,那么我无法使用
在库B中访问它IntPtr javaClass = JNIEnv.FindClass("com/company/application/jniText");
我说我必须重命名文件的原因是因为如果我将文件移动到库B使得它不再在项目A中调用FindClass仍然会找到jniTest,即使它在库中。我相信它仍然在原始位置找到它。这让我相信,当我将java文件移动到我的库时,它工作正常。只有在命名空间更改之后才停止工作,因为现在仍然以某种方式构建到项目A中的原始文件与库B中导致NoClassDefFoundError
的内容不同。
我希望我只是错过了一个项目属性或JNIEnv方法,但是我找不到要设置它的工作原理。
谢谢
答案 0 :(得分:1)
只有主项目中的AndroidJavaSource,AndroidAsset,AndroidResource等才能进入最终版本。图书馆项目不支持这些内容。