java-native-interface相关内容
我正在寻找一种使用Eclipse在Android NDK应用程序中轻松调试C代码的方法.我已经阅读了使用gdb或类似工具调试应用程序的方法,但是我想要的是以某种方式将消息推送到Eclipse的方法. 我正在寻找一种简单的解决方案,就像在C语言中使用打印功能并在DDMS日志或任何类似内容中看到它一样.有没有人有这样做的经验? 解决方案 您可以使用Android日志记录功能: #i
..
我在JNI代码中看到此警告: JNI WARNING: 0x44be7258 is not a valid JNI reference 我正在将JNI中FindClass方法返回的LocalReference分配给构造函数中的类成员变量: 标题: ... jclass m_class; Cpp: m_class = env->FindClass( classSign
..
我在Android.mk文件中定义了一些变量(我为编译器传递了一些标志),但是每次构建项目时,Android.mk都会被覆盖.我假设Gradle是负责任的,我应该去那里看看吗? 如何使用自己的Android.mk文件? 背景信息: Ubuntu 64位,Android Studio 1.0.1,JDK7. 我已经用还没有Application.mk文件,所以我再次假设Gradle负责对
..
我完全可以按照jni教程进行操作.但是,当我更改方法名称时,就会遇到麻烦.我需要遵循一个命名约定吗?本教程使用HelloJNI作为模块名称和库名称.我使用了"useaaacom". 对此我获得了很好的反馈,并且我正在取得进展.我有一个相关的问题;让我知道是否要为此再创建一个帖子.我喜欢在此应用程序上构建,该应用程序现在可以运行.如何从设备驱动程序调用函数?我有头文件,并且驱动程序已加载到我的
..
我尝试在Raspberry Pi(Debian 4.6.3)上用Java构建opencv,并每次从cmake中得到一个错误:找不到JNI(丢失:JAVA_INCLUDE_PATH JAVA_INCLUDE_PATH2 JAVA_AWT_INCLUDE_PATH).我使用了此文档( http://docs.opencv.org/doc/tutorials/introduction/desktop_j
..
我在这里看到了这个问题,尝试了建议的修复程序,但到目前为止对我而言没有成功.我有一定的Java经验,但是JNI很久以前了,虽然在Linux上从来没有... 我正在尝试让一个简单的HelloWorld JNI应用程序在Linux上运行. 小型java文件: class HelloWorld { private native void print(); publi
..
我创建了一个头文件和一个相应的.c文件,其中包含我想与Java程序一起使用的功能.我使用javah创建了JNI头文件.我正在使用gcc编译我的头文件.如何将常规C对象文件与JNI静态库链接以获得使用C库的静态库?我正在使用gcc进行编译. 这是我要问的一个例子: lib.h lib.c JNITest.h JNITest.c (uses lib.h functions) 解决方案
..
我正在编写一个Android应用,该应用希望对使用NDK内置的共享库进行JNI调用.诀窍在于,此共享库调用了其他共享库提供的功能.其他共享库是已在其他位置编译的C库. 这是我尝试过的: 我的环境: 我正在Eclipse中工作.我添加了本机支持并拥有jni库.在该库中,我有我的代码和一个\ lib目录,在该目录中已复制了其他.so文件. 尝试排名第一的Android.mk:只需告诉
..
我正在尝试使用自己的数据集运行 LibSVMAndroidClassification Android项目.它与已经提供的数据集完美配合,当我使用100行(小于原始大小的1%)的csv时,也可以配合使用.但是,当我尝试使用例如1000行的"Train CSV"时,我会看到此错误.我什至尝试在Manifest.xml中设置android:largeHeap ="true",但没有任何改善. 这
..
我试图将OpenCV添加到我现有的Android项目中,但是在合并它们时遇到了以下错误: 12-08 16:15:21.951 22052-22052/ai.inbi.face_recognition_robot E/AndroidRuntime: FATAL EXCEPTION: main
..
我在桌面上遇到LibGDX的问题.尝试启动应用程序时,我始终收到以下错误: Exception in thread "main" java.lang.UnsatisfiedLinkError: com.badlogic.gdx.utils.BufferUtils.newDisposableByteBuffer(I)Ljava/nio/ByteBuffer; at com.badlogic.g
..
我必须逐字符读取一个53 MB的文件.当我使用ifstream在C ++中完成此操作时,它以毫秒为单位完成,但是使用Java InputStream则需要几分钟. Java这么慢是正常的还是我错过了什么? 此外,我需要用Java完成程序(它使用servlet,而我必须从servlet调用处理这些字符的函数).我在想也许是用C或C ++编写文件处理部分,然后使用Java Native Inte
..
我正在我的一个移动应用程序中将代码从Java转换为Kotlin,并且Java中可用的代码停止在Kotlin中工作.它使用JNI桥来调用C ++代码. Kotlin方法声明: class Converter{ companion object { external fun convertNative(width: Int, height: Int, row:
..
Kotlin中 external 关键字的用途是什么? 我想它像Java中的native一样用于JNI,但是我似乎找不到任何实际的参考文献或文档. 解决方案 实际上,它等同于Java的native.文档中目前缺少它,但是有一个问题可以添加.
..
我想防止JVM生成崩溃日志文件,所以我的启动脚本看起来像这样 java -XX:ErrorFile=/dev/null MyClass 但是当jvm崩溃时,日志文件'hs_err_pidXXXXX.log'仍会在当前工作目录中生成.为什么? 操作系统:ubuntu 18.04,Java版本:oracle java 10 解决方案 如果指定给-XX:ErrorFile的文件存
..
JNI和delphi有问题. 每当我使用以下代码在delphi中创建JVM时: FillChar(Options, SizeOf(Options), #0); Options[0].optionString := '-Djava.class.path=' + 'blabla.jar'; VM_args.version := JNI_VERSION_1_2; VM_arg
..
首先,我很抱歉,这已经在这里得到了一定的回答,但是我认为我的情况有所不同. 如何与附加的jvmti代理进行通信在运行的JVM上 我的主要问题是... 我想知道是否仍然使用JNI或其他库在JVMTI Native Agent和完全独立的JVM之间进行通信. 这是一个小插图 那么这里发生了什么. 左侧的JVM装有本机代理.仅出于讨论目的,让我们假设我无权访问此Java应用程序的
..
我们有一个Java应用程序,该应用程序具有多线程(pthread)的JNI层,并将在从底层网络接收到消息时回调到Java级别. 我们注意到,每次崩溃它都是由gc引起的.我们甚至可以通过在JNI层从网络接收消息时调用jmap -histo 手动触发gc来模拟这种崩溃. 鉴于本文中我们已阅读的有关GC期间JVM中的行为的信息, https://stackoverflow.com/
..
我想知道Java对象的年龄,当我们使用new关键字时,用户定义的对象是用Java创建的,但是何时将其销毁? 跨越JVM的权限空间需要花费时间吗?我可以使用JNI编程知道对象的数字年龄吗? 生存空间,烫发空间和物体年龄之间是什么关系? 解决方案 在Java中,对象的年龄存储在// The markOop describes the header of an object. //
..
类似的问题已在Windows中得到解答,但我找不到了解如何在Linux上实现相同的目标. 我想加深我对JNI的了解.我已经使用 JNI_CreateJavaVM ,从本机应用程序中创建一个新的JVM. 但是这次,我想不在本机应用程序中创建JVM(即, not 使用 Linux上是否有一种方法可以实现此目的?我需要获取正在运行的JVM的JavaVM对象.我尝试使用 JNI_GetCrea
..