草庐IT

jni_generator

全部标签

java - 协议(protocol) : How to generate multiple Java source files?

编译大型Protobuf定义后,我得到一个6MB的Java源代码文件。因为它的大小,当我在Eclipse中开发时,使用该文件是一个很大的痛苦,每当我打开该文件时,Eclipse就会完全停止/崩溃。有没有办法让protoc生成多个Java源代码文件而不是一个大文件? 最佳答案 其实是有的。它没有记录,但您可以像这样在.proto文件中添加一行:optionjava_multiple_files=true;这会将来自.proto文件的每个顶级消息类型放入一个独立的.java文件中。请注意,您当然必须更新所有代码才能从新位置导入这些类。还

java - 如何在 jni 中将 jbyteArray 转换为原生 char*?

我正在尝试将jbyteArray转换为jni中的原生C字符串(char*)?不幸的是,我找不到任何关于如何做到这一点的文档。我在C代码中使用以下原型(prototype)调用Java函数。publicstaticbyte[]processFile(byte[]p_fileContent)在C代码中,我调用了这个返回字节数组的函数。这个字节数组的内容是一个java字符串。但我需要将其转换为C字符串。jbyteArrayarr=(jbyteArray)env->CallObjectMethod(clsH,midMain,jb);printf("%s\n",(char*)arr);

java - 如何在 Eclipse 中有效地调试用 JNI 包装的 C 代码? (安卓开发)

我有一个段错误,但我完全不知道如何找到它。提示? 最佳答案 您可以使用AndroidNDKStacktraceAnalyzer获取导致崩溃的C函数的位置。.步骤在thewiki,但基本上你需要从logcat获取堆栈跟踪到一个文件(adblogcat>mycrash.log),然后将你的库转储到一个文本文件,然后在它们两个上运行程序。这是我用来做很多事情的shell脚本:#!/bin/shiftest$#-lt2;thenecho"ExtractreadablestacktracefromAndroidlogcatcrash"echo

java - 子类的 JNI FindClass 格式?

加载子类的正确FindClass标识符语法是什么?例如:packagea.b.c;classFoo{classBar{...}}要获取Foo,我可以执行(*env)->FindClass(env,"/a/b/c/Foo"),但要获取Bar通过(*env)->FindClass(env,"a/b/c/Foo/Bar")抛出ClassNotFoundException。是否有不同的语法来表示子类? 最佳答案 没关系,javap工具在这里很有用。正确的语法是:a/b/c/Foo$Bar 关于j

java - mvn原型(prototype):generate and mvn archetype:create有什么区别

这两者有什么区别吗? 最佳答案 archetype:create是旧的和弃用的形式,需要在开始时定义所有属性,而archetype:generate是更新和更舒适的方式。archetype:generate知道列出原型(prototype)的那些目录,并且可以询问您缺少的属性/变量。我想引入新命令的原因是新生成的命令不向后兼容,因此它可能破坏了依赖它的现有脚本。 关于java-mvn原型(prototype):generateandmvnarchetype:create有什么区别,我们在

java - JNI 依赖库

我正在通过JNI运行一个库(我没有编写它),它在内部调用另一个DLL。除非我将另一个DLL的路径放在系统PATH变量上(我在WindowsXP上),否则我会收到一条错误消息“无法找到依赖库”。我希望能够在java命令行上处理这个问题,并且我已经尝试将它添加到-Djava.library.path和类路径中,但都不起作用(我希望-Djava.library.path起作用但不是类路径,但都不起作用)。有办法做到这一点吗?谢谢,杰夫 最佳答案 如果您的DLL名称为“MyNativeDLL.dll”,那么您应该在LoadLibrary调用

2023-06-16 Android app 使用opencv 调用jni在图片上添加文字,对图片进行模糊处理,源码实例学习。

一、要理解还是得自己看代码    1.1完整的测试代码路径如下https://download.csdn.net/download/qq_37858386/87916944    1.2代码架构     1.3app运行效果二、androidstudio添加opencvmodule可以参考下面的文章,比较详细。Android+OpenCV入门教程笔记(保姆级)_opencvandroid_派的十二位的博客-CSDN博客三、按上面的添加opencv模块后,添加文字,方法一,不需要另外添加jni。这个方法主要参考下面文章AndroidApp开发超实用实例|OpenCV在Android手机实现在图像

java - 如何从 JNI 返回枚举

在java中我有:publicclassMyClass{publicenumSTATUS{ZERO,ONE,TWO}publicnativeSTATUSnativeGetStatus();...privateSTATUSstate=nativeGetStatus();//returnsenumprivateSTATUSstate2=nativeGetStatus();//returnsenum}我希望native方法“nativeGetStatus”返回此枚举值。JNI返回整数并与java中的枚举值进行比较是一个选项,但想知道是否可以通过jobject返回值并将其直接分配给状态?如果是

java - 我可以知道调用 JNI C 方法的类的名称吗?

有什么方法可以知道在JNIC代码中调用方法的类的名称?我可以使用以下语句获取对该类的引用:jclasscls=(*env)->GetObjectClass(env,obj);但是我有什么办法可以知道类(class)的名字吗?. 最佳答案 此代码将为您提供调用类名称:jclasscls=env->GetObjectClass(obj);//FirstgettheclassobjectjmethodIDmid=env->GetMethodID(cls,"getClass","()Ljava/lang/Class;");jobjectcl

Android Java代码与JNI交互字符串转换(四)

🔥AndroidStudio版本🔥 🔥创建JNIString.java🔥packagecom.cmake.ndk1.jni;publicclassJNIString{static{System.loadLibrary("string-lib");}publicnativeStringcallNativeString(Stringstr);publicnativevoidstringMethod(Stringstr);} 🔥Native层实现JNI的callNativeString函数🔥#include#includeextern"C"JNIEXPORTjstringJNICALLJava_co