gpt4 book ai didi

java - 库中的 Monodroid JNIEnv.FindClass

转载 作者:行者123 更新时间:2023-11-30 04:20:44 25 4
gpt4 key购买 nike

在 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 方法,但我找不到设置什么来使这项工作正常进行。

谢谢

最佳答案

只有主项目中的 AndroidJavaSource、AndroidAsset、AndroidResource 等才会进入最终包。图书馆项目不支持这些东西。

关于java - 库中的 Monodroid JNIEnv.FindClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9278558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com