草庐IT

JNI_ASSERT

全部标签

java - JNI Android - 将 char* 转换为字节数组并将其返回给 java

我最初使用一个函数将char*作为UTF-8字符串返回给java,但由于我不断出错,我编写了以下函数将char*作为Java返回>byte[],这样我就可以尝试在Java端将数组转换为字符串:jbyteArrayJava_com_vektor_amapper_util_InputDeviceManager_getDevNameBytes(JNIEnv*env,jobjectthiz,jintindex){if(pDevs[index].device_name==NULL)returnNULL;intn=0;while(pDevs[index].device_name){n++;}if(

java - "T is a top-level class, and an assert statement lexically nested within T is executed."是什么意思?

我正在学习“类和接口(interface)的初始化”,它说“T是顶级类,并且执行词法嵌套在T中的断言语句。”任何人都可以告诉我“T是顶级类,并且执行词法嵌套在T中的断言语句”是什么意思。举例说明?这句话来自JLS,原文是这样的:AclassorinterfacetypeTwillbeinitializedimmediatelybeforethefirstoccurrenceofanyoneofthefollowing:TisaclassandaninstanceofTiscreated.TisaclassandastaticmethoddeclaredbyTisinvoked.Asta

java - JNI 附加/分离线程内存管理

我有一个JNI回调:voidcallback(Data*data,char*callbackName){JNIEnv*env;jvm->AttachCurrentThread((void**)&env,NULL);/*startusefulcode*//*endusefulcode*/jvm->DetachCurrentThread();}当我这样运行它(空的有用代码)时,我发生了内存泄漏。如果我注释掉整个方法,就没有泄漏。附加/分离线程的正确方法是什么?我的应用程序处理实时声音数据,因此负责数据处理的线程必须尽快完成,以便为下一批处理做好准备。因此,对于这些回调,我创建了新线程。每秒

java - 无法导入 org.junit.Assert.AssertThat;

我无法在我的程序中导入org.junit.Assert.AssertThat。我正在使用Ganymede和jUnit4.8.1。 最佳答案 静态导入是org.junit.Assert.assertThat(T,Matcher)您可以将其作为静态导入导入:importstaticorg.junit.Assert.assertThat现在在您的客户端代码中,您可以执行assertThat(something,ismatched())引用:JavaTutorial>TheStaticImportStatement常规导入如果您导入Asse

java - org.junit.Assert.assertThat 比 org.hamcrest.MatcherAssert.assertThat 好吗?

我是JUnit和Hamcrest的新手,希望获得最佳实践建议,以便我可以决定首先研究哪些文档。对于初学者来说,这些assertThat方法中哪个更好?org.junit.Assert.assertThat(来自junit-4.11.jar)org.hamcrest.MatcherAssert.assertThat(来自hamcrest-core-1.3.jar)据一个人说,去年,"JUnithastheassertThatmethod,buthamcresthasitsownassertThatmethodthatdoesthesamething.".根据今年早些时候的消息,Hamcr

java - 正确使用 Java "assert"关键字

我一直不明白assert是干什么用的,尽管我读了很多例子,但它们并没有真正让我知道我应该用它做什么或为什么要用它。因此,我不会询问示例,而是提供一个示例,让我知道这是否是assert的正确用法。//Theideaisthatthe`mode`variableshouldbe0or1,andnoothernumber.switch(mode){case0://dostuffbreak;case1://dootherstuffbreak;default://assertcode?}如果这是正确的,请告诉我在这种情况下如何使用它。如果这不是它应该使用的方式,请提供示例。

java - 尝试运行 LWJGL "Hello World"时如何解决此 JNI 错误?

我正在尝试从LWJGL网站运行示例“HelloWorld”来自此链接:LWJGL"GettingStarted"我正在尝试通过命令行执行此操作,以便更好地了解“幕后”。我已经设法编译没有任何错误,但是当我尝试运行该程序时出现此错误:C:\JavaProjects\LearningLWJGL>java-classpath.;./lib/*.jar-Djava.library.path=C:\Windows\System32HelloWorldError:AJNIerrorhasoccurred,pleasecheckyourinstallationandtryagainException

java - 使用 Eclipse 开发 JNI 应用程序(结合 Java/C++)

有没有人成功地为Eclipse设置了一个组合的Java/C++项目?我想做的很简单;1)CompilemyJavasources2)RunJavahtocreatetheJNIinterface3)CompilealltheC/C++sources4)Linknativesharedlibrary+packagetheJAR非常欢迎提供有用的提示甚至实际项目。(eclipse3.5) 最佳答案 http://www.cs.umanitoba.ca/~eclipse/8-JNI.pdf我认为这就是您想要的。可能有点旧。

java - 将 JNI 库添加到本地 Maven 存储库

我希望使用Maven添加一个JNI库,包括它的共享对象(.so)文件到我的项目中。不幸的是,它还没有在公共(public)存储库中,所以我想我必须自己将它安装在我的本地存储库中才能让它工作。如何将Maven中的native部分包含在我的项目中(并最终使用复制依赖项插件导出)。这是一个标准的J2SE应用程序(不是网络应用程序),带有.jar包?我要添加的库是junixsocket,以防万一它有助于了解。它有一个.so(native库)组件和Java.jar组件。我遇到了maven-nar-plugin它似乎以native构建为目标,但似乎更倾向于从代码构建JNI项目,而不是捆绑第3方JN

java - JNI - 带有 ByteBuffer 参数的 native 方法

我有一个方法:publicnativevoiddoSomething(ByteBufferin,ByteBufferout);此方法javah生成的C/C++头文件是:JNIEXPORTvoidJNICALLJava__MyClass_doSomething(JNIEnv*,jobject,jobject,jobject,jint,jint);如何从jobject(即ByteBuffer实例)获取数据数组? 最佳答案 假设您使用ByteBuffer.allocateDirect()分配了ByteBuffer你可以使用GetDirec