我需要使用boost binary_oarchive来序列化我的数据然后转移到我的Android应用程序。
def soup(x):
for i in range(x):
if i>0 and i%2==0:
print ('tomato',end='')
else:
print (i,end='')
我写了一个jni代码来将c ++字符串传输到java字符串。
string MyCppClass::GetSerializeData() {
std::stringstream os;
{
::boost::archive::binary_oarchive oa(os, boost::archive::no_header);
oa << my_data;
}
return os.str();
}
但是这种方式不起作用,我试图将正常的字符串写入stringstream,如:
JNIEXPORT jstring JNICALL getCppData(JNIEnv *env, jobject instance) {
std::string temp = MyCppClass.GetSerializeData();
jstring orb_string = env->NewStringUTF(temp.c_str());
return orb_string;
}
工作正常。所以我认为问题是我的c ++字符串是二进制格式。 我想问一下如何将c ++二进制字符串传递给java端?