当从本机代码调用java方法时,如何解决传递给JNI的错误全局或本地ref
我搜索了很多关于这个问题的答案,但没有一个答案与我的情况相匹配。我不知道我在哪里犯了错误。我用java创建了一个本机方法,并通过jni调用它。在本机方法中,我获得了一个java类方法的引用,并从那里调用它 我的java类如下所示:当从本机代码调用java方法时,如何解决传递给JNI的错误全局或本地ref,java,java-native-interface,Java,Java Native Interface,我搜索了很多关于这个问题的答案,但没有一个答案与我的情况相匹配。我不知道我在哪里犯了错误。我用java创建了一个本机方法,并通过jni调用它。在本机方法中,我获得了一个java类方法的引用,并从那里调用它 我的java类如下所示: import java.util.ArrayList ; import java.util.LinkedHashMap ; public class WmiClientClassJson { static { System.load("
import java.util.ArrayList ;
import java.util.LinkedHashMap ;
public class WmiClientClassJson {
static {
System.load("C:\\Users\\vignesh-pt1616\\Desktop\\WmiClientLibraryJson\\Debug\\WmiClientLibraryJson.dll");
}
public native void createConnection(String query , LinkedHashMap<String,Object> map , ArrayList<LinkedHashMap<String,Object>> list);
public static void main(String[] args)
{
WmiClientClassJson obj = new WmiClientClassJson();
LinkedHashMap<String , Object> map = new LinkedHashMap<String , Object>();
ArrayList<LinkedHashMap<String , Object>> list= new ArrayList<LinkedHashMap<String , Object>>();
obj.createConnection("String" , map , list );
}
public void indexToEs()
{
System.out.println("index method called");
}
}
请帮我解决这件事。提前谢谢
if( callingClass = NULL )
将获取类引用并将其更改为0
<>你应该多注意编译器警告,通常C++编译器提醒你永远不要写< /P>
if ( something = 0 )
解决办法是写作
if( callingClass == NULL )
所以,当你说“解决”时,你的意思是你在寻找如何调试这个问题的帮助?@DieNerd感谢你的回答。是的,有什么东西可以帮助我解决这个问题吗?你是否完整地注释掉了整个部分w/jMethod,直到dll的结尾&错误仍然存在?无论何时谈论容量大小都是一个问题。你也试过看size方法吗?是的,我试过注释所有其他代码。即使size方法和仅使用Callingclass和Methodid操作进行检查,仍然会得到相同的错误。你应该把你尝试过的不同东西放到问题中,给想帮你调试head的人开始…非常感谢。你救了我一天。现在一切都很完美
if ( something = 0 )
if( callingClass == NULL )