问题标签 [jbytearray]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1500 浏览

c++ - 使用 JNI 将 jbyte 数组发送到 Java 方法失败

考虑这个java方法:

我尝试使用 Qandroid JNI 从 c++ 中使用此方法。这是我用 C++ 编写的代码:

根据Java代码的签名。我是否正确使用了 callMethod?为什么它根本不运行?它在控制台中不打印任何内容!没有例外没有错误!


供您参考,我正在尝试使用 JNI 打开 USB 串行设备。我成功打开了设备,得到了 UsbDeviceConnection 对象。串行端口已成功打开,一切正常。但是这里写功能不起作用。似乎它根本没有进入该功能。我没有收到错误。我认为问题是我为该方法提供的签名字符串或缓冲区对象?你对此有何看法? 谢谢你的帮助。

0 投票
0 回答
170 浏览

java - JNI C++ -> Java 位图头信息和字节到 jbytearray

我正在使用 JNI 将图像从 C++ 传递到 Java,我试图将jbyteArray中的字节发送到byte[]中的 Java 。但是,我遇到了一个错误,该错误很可能与正在发送的字节大小有关。

我尝试过int len = dwBmpSize具有相同值但 jvm 不断崩溃。

初始化 jbyteArray 的正确字节数是多少?

0 投票
1 回答
913 浏览

java - 在 unsigned char 数组到 jbytearray 和数据丢失之间转换

我想将 unsigned char 数组转换为 jbytearray 并将 jbytearray 转换为 unsigned char 数组。

这是我想做的事情:

阶段1)

  1. unsigned char data1[] 到 jni 中的 jbytearray。
  2. java中的jbytearray到byte []
  3. base 64 编码 byte[] 到 String 并保存在文件中。

阶段2)

  1. 从保存的文件中加载字符串
  2. base 64 解码字符串到字节[]
  3. byte[] 到 jbtearray
  4. jbytearray 到 jni 中的 unsinged char data2[]

这是我的问题:

unsigned char 的范围是 0 ~ 256
和 byte(in java) -128 ~ 127

所以,虽然 unsigned char 和 byte 之间的转换存在溢出,

phase1) data1 和 phase2) data2 是否正确且没有任何数据丢失?

在我看来,我记录了 data1 和 data2

他们看起来一样。

但是,我不明白它看起来如何(即使溢出)。

并假设它们是相同的,奇怪的是,在其他逻辑中有些事情进展不顺利......(Data1 用 AES 加密,我想用与 Data1 相同的方式解密 Data2)

前任。

任务阶段1)2、3和阶段2)1、2、3

会一样吗?

如果这种方式是错误的,我该怎么办?

0 投票
1 回答
201 浏览

java - 如何将加密数据从 c++ 传输到 java

我有一个使用JNI的简单加密程序(JAVA,C++。简而言之:我将一个简单的字符串传递给 C++ 程序。C++ 程序为我加密该字符串并返回密码字符串。我将为客户端打印密文。

问题:当我在 c++ 中加密并将其传递给 java 时,某些字符无法传输。但是当我使用 c++ 控制台打印它时,它是正确的。该字符之一是:

ü

C++ 控制台中的密文:

ozmzâx~w|(~i}|64ío(üuvt*po~,s|*nY|(yy~(ktztskk|sgX

在java中传输的密文:

ozmz?x~w|(~i}|64ío(?uvt*po~,s|*nY|(yy~(ktztskk|sgX

(a , ü 丢失)

因此,由于这个错误,当我想解密文本时,这些字符无法正确解密(但在 c++ 中解密正确!)

纯文本 :

您好,这是加密器测试的测试消息,我们将为我们的应用程序测试它

密文java:

rmvpy4*Prq},s u~m}x uos}iqi rybozmz?x~w|(~i}|64ᄀo(?uvt po~,s|*nY|(yy| (ktztskk|sgX

解密文本:

您好,这是一个 encrケptor test 的测试消息,キe キ将为我们的应用程序测试它

(在“加密器”、“我们”和“将”中失败)我该怎么办?

我以 jbyteArray 格式将字符从 c++ 传输到 java。

C++ 代码:

}

JAVA代码:

0 投票
1 回答
581 浏览

android - 我正在尝试修改一个字节数组并通过 JNI 将其从 c++ 发送到 java

这是我的功能:

并且它总是会在这个 LOG:LOGI("FrameReceived will reach here 5");之后在 FOR 循环中崩溃。我在这里做错了什么?这就是我想要在 NDK 中实现的目标:

public byte[] I420toNV21(final byte[] input, byte[] output, final int width, final int height) { if (output == null) { output = new byte[input.length]; } 最终 int 大小 = 宽度 * 高度;最终 int 四分之一 = 大小 / 4;最终 int v0 = 大小 + 四分之一;

所以我可以将 corect 格式的字节数组发送到 java。并且不必在我的 java 代码中执行此方法。为什么不能将for循环中的值添加到字节数组中?

0 投票
1 回答
294 浏览

java - 如何转换 ArrayList向量对于 JNI?

我想将java中的ArrayList转换为c++中的vector。我怎样才能做到这一点?

Input:c++中的jobject input,即JAVA中的ArrayList。输出:c++中名为vector的类;

//找到jclass 4 ArrayList,只测试jposCommits和jnegCommits是ArrayList的实例

下一步我能做什么

0 投票
1 回答
120 浏览

c++ - 如何将 jbyteArray(或字节数组)写入 txt 文件 c++?

我有一个格式为 c++ 中的 jbytearray 的图像。我需要将其写入 txt 文件。我在 stackoverflow 上做了很多解决方案,但没有一个对我有用。

当我将 jbyteArray 转换为 char * 时,它写入成功,但我需要将它写为 jbyteArray,因为我需要在 java 和 c++ 中比较 jbyteArray 的内容。我将来自 c++ 的 jbyteArrays 写入 txt 文件,并且我需要在 c++ 部分中写入 jbytesArray。因此我需要将 jbyteArray 写为 jbyteArray 而不是 char *

这是我尝试过的;

试验 1

试验 1 的问题

“jbyteArray”类型的参数与“const char *”类型的参数不兼容

非常感谢您。