Í 具有需要返回 J 字节数组的 JNI 函数。该数组包含带有数据的 c 结构的字节数据。但是当我将数据从未编号的char数组传递到jbyte数组时,我遇到了错误。
C结构定义如下:
// ObjectInfo struct definition
struct ObjectInfo {
int ObjectXCor;
int ObjectYCor;
int ObjectMass;
};
// ObjectInfo struct definition
struct SensorDataStruct{
int PingData;
int IRData;
int ForceData;
int CompassData;
};
// ObjectInfo struct definition
union PackedSend{
struct CommStruct{
ObjectInfo VisionData;
SensorDataStruct SensorData;
} CommData;
unsigned char bytes[28];
}SendData;
JNI方法定义如下:
JNIEXPORT jbyteArray JNICALL Java_com_example_communicationmodule_MainActivity_Convert(
JNIEnv *env, jobject,
jint var1,
jint var2,
jint var3,
jint var4,
jint var5,
jint var6,
jint var7)
{
// Array to fill with data
jbyteArray Array;
// Init java byte array
Array = env->NewByteArray(28);
SendData.CommData.SensorData.PingData = var1;
SendData.CommData.SensorData.IRData = var2;
SendData.CommData.SensorData.ForceData = var3;
SendData.CommData.SensorData.CompassData = var4;
SendData.CommData.VisionData.ObjectXCor = var5;
SendData.CommData.VisionData.ObjectYCor = var6;
SendData.CommData.VisionData.ObjectMass = var7;
//Put the native unsigned chars in the java byte array
for(int Index=0; Index < 28; Index++){
Array[Index] = SendData.bytes[Index];
}
// Return java array
return Array;
}
我得到的错误是: jni/帮助器函数.cpp:44:38: 错误: 不匹配 '运算符 =' 在 '*(数组 ((无符号的整数)索引)) = SendData.打包发送::字节 [索引]'
我的问题是,将原生无符号char数组转换为jbyte数组的正确方法是什么?谁有建议吗?欢迎所有提示!
在转换为(jbyte)后,我得到以下错误:jni/HelperFunctions.cpp:54:46:错误:在' *(Array((unsigned int)Index))=(jbyte)send data中没有' operator= '的匹配项。packed send::bytes[Index]' JNI/helper functions . CPP:54:46:注:候选项为:C:/Android-ndk-r9/platforms/Android-8/arch-arm/usr/include/JNI . h:66:7:注:_jbyteArray
转换代码如下:
//Put the native unsigned chars in the java byte array
for(int Index=0; Index < 28; Index++){
Array[Index] = (jbyte) SendData.bytes[Index];
}
env->SetByteArrayRegion(Array, 0, 28, (jbyte*)SendData.bytes)
我在尝试将未签名的 char 数组转换为 jstring 时遇到问题。 上下文是我正在使用来自Java的共享c库。所以我正在实现一个JNI c文件。我在库中使用的函数会恢复 我在 JNI C 文件中实现的函数返回一个 jstring。 所以我需要把无符号的char数组转换成jstring。 但是,尽管数组应该只包含20个字节,但我在Java中随机得到22或23个字节......(虽然 20 个字节
我想优化我的代码,避免错误,我有这个功能,但我认为我可以改善和避免内存问题。 该函数的思想是接收这种样式的字符串“0123456789”并将其传递给0x01、0x23、0x45、...在无符号字符数组中。任何提示,良好的实践或改进将是非常有用的。 用法是这样的: 在函数缓冲区中结束如下:
我有一个购物车php页面,在那里我显示客户端产品。在同一页中,我有一个表单,可以将客户的个人详细信息(如姓名、姓氏等)以及产品信息(如产品名称、数量等)直接发送到我的电子邮件地址。 现在,问题是,当我发送表单时,在我的电子邮件地址上,我收到了所有的信息,但没有产品细节,例如在订单电子邮件中的产品名称字段,我有ARRAY。 我看到将数组转换为字符串时出现问题,但我不知道如何转换,我尝试了几个示例,但
问题内容: 如何将字符串转换为JavaScript数组? 看一下代码: 在这种情况下,将弹出一个。当它是一个数组时,它会弹出一个,而当它被调用时,它应该弹出一个。 是否有机会将此类字符串转换为JavaScript数组? 问题答案: 对于像这样的简单数组成员,可以使用。 这为您提供了一个数字数组。 如果使用,则会得到一个字符串数组。 请注意,这将限制您使用受支持的数据类型。如果您需要类似或函数的值,
我在尝试使用nokogiri运行rake任务时遇到这个错误。 编辑:顶部表架构
我正在使用Schembuf在带有套接字的计算机之间更改数据。要传输数据,我使用以下内容: 然而,我注意到Protobuf无法读取任何非int类型的接收数据(它将其分配给0)。果不其然,如果我不使用套接字,但试图用相同的代码片段返回消息,则会发生相同的情况: 我还指出: 那么,为什么我不能正确地将数据转换回字符串呢?如果这是一个参考问题,为什么protobuf不能读取字符数组数据或从字符数组转换的字