- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有cocos2d:: ValueMap
:
ValueMap map;
map["key1"] = "value1";
map["key2"] = 1;
map["key3"] = true;
我想将它发送到 Java 作为 HashMap<String,Object>
所以我在生成 jobject hashMapObj
的地方编写了以下代码我想用值填充它:
jclass hashMapClass= jniGetInstance.env->FindClass("java/util/HashMap");
jmethodID hashMapInit = jniGetInstance.env->GetMethodID(hashMapClass, "<init>", "(I)V");
jobject hashMapObj = jniGetInstance.env->NewObject(hashMapClass, hashMapInit, values.size());
//javap -s -p java.util.HashMap | grep -A 1 put\(
jmethodID hashMapId = jniGetInstance.env->GetMethodID(hashMapClass, "put", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;");
for (auto it : map) { //https://github.com/cocos2d/cocos2d-x/blob/v3/cocos/base/CCValue.h
switch (it.second.getType()) {
case cocos2d::Value::Type::BOOLEAN:
jniGetInstance.env->CallObjectMethod(hashMapObj, hashMapId, "put",
jniGetInstance.env->NewStringUTF(
it.first.c_str()),
it.second.asBool());
break;
//...
default:
break;
}
}
然后我排队了:
jniGetInstance.env->CallObjectMethod(
hashMapObj,
hashMapId,
"put",
jniGetInstance.env->NewStringUTF(
it.first.c_str()),
it.second.asBool());
JNI DETECTED ERROR IN APPLICATION: use of invalid jobject 0xd85d4aa0
编辑
jniGetInstance.env->CallObjectMethod(hashMapObj, hashMapId, "put","someString", true);
失败并出现同样的错误,所以问题出在 hashMapObj
有什么想法吗?
最佳答案
改变
jniGetInstance.env->CallObjectMethod(hashMapObj, hashMapId, "put",
jniGetInstance.env->NewStringUTF(
it.first.c_str()),
it.second.asBool());
到
jniGetInstance.env->CallObjectMethod(hashMapObj, hashMapId,
jniGetInstance.env->NewStringUTF(it.first.c_str()),
it.second.asBool());
因为“put”方法只接受 2 个参数。
还要确保 it.second.asBool()
返回 jboolean
- 它不同于 C++ bool
类型。
关于java - 如何将cocos2d ValueMap作为HashMap发送给Java?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46683950/
我有一个非常简单的脚本,它只需通过 ValueMap 访问资源属性。除了某些原因之外,在 if 语句开始时我不断收到意外 token 错误。这一定是我忽略的事情。 public class heade
我还是 SmartGWT 的新手,目前遇到一个奇怪的问题.. 我使用的是 Windows XP 和 SmartGWT 版本 3.0,GWT SDK 2.4.0(使用 Eclipse IDE)。 所以我
我是使用图数据库的初学者。据我所知,valueMap()返回特定顶点的属性数组。但是在tinkerpop文档中,我发现了另一种方法,例如mapsValue()。请我知道其中的区别。提前致谢。 最佳答案
我在 nodejs 上使用 es6,并尝试在 gremlin 查询中执行 project() 步骤。 作为投影的一部分,我想提取属性。 使用 gremlin 控制台我会使用 valueMap() 来获
我正在将图表中的所有值提取到一个名为节点的列表中: nodes = g.V().valueMap(True).toList() 对于每个节点,我想获取 id,但我不知道如何获取。例如。我有一个名为 '
小问题: 如何将jobject转换为cocos2d::ValueMap? 详细问题: 我有 Java 部分: public class MyCallback implements MyListener
python g.V('test_red1').valueMap().toList() 工作正常,但是当我将 true 传递给请求 id 和标签时,我收到此错误。有什么我想念的吗? g.V('test
假设我有两种类型的顶点, parent 和 child 。我希望能够查询所有父顶点并将所有子节点按其关联的父节点以及每个子节点的属性分组。假设 parent 有多个 child ,而 child 只能
我发现Valuemap是方法。该值不支持指针。但是我写那些代码不会出错: Sprite* spriteBg = .....; Valuemap dic; dic["abc"] = spriteBg;
我正在学习这个关于在我的游戏中实现 tilemaps 的精彩教程 http://www.raywenderlich.com/39113/cocos2d-x-tile-map-tutorial-part
GraphTraversal> tsList = traversalSource.V().has("request","id_key",114).valueMap(); while(ts
我是一名优秀的程序员,十分优秀!