关于JNI的问题 请各位大佬解惑

理想三旬 2017-07-24 04:24:18
jclass clazz1 = (*env)->GetObjectClass (env, object);
jfieldID field = (*env)->GetFieldID(env, clazz1, "byVer", "B;");
jbyte byVer = (*env)->GetByteField(env, object, field);


上面的代码在64位的环境下是正常的 但是在32位环境的时候 jfieldID field 这个变量是空的 请问这是为什么?
...全文
180 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
trytry1992 2017-07-26
  • 打赏
  • 举报
回复
在32位这javah重新生成一下头文件试试,也许两边JDK版本不一样
理想三旬 2017-07-26
  • 打赏
  • 举报
回复
引用 6 楼 trytry1992 的回复:
[quote=引用 5 楼 shunweilan 的回复:] [quote=引用 4 楼 trytry1992 的回复:] 64为的JDK你用64的可以,你换成32位以后,JDK也要换成32位的呀
没有 32位环境 我是在32位win7上运行的 JDK VS编译都是32位的[/quote] 你在32位的电脑上怎么编译64位通过的[/quote] 64 位环境是在64位电脑操作的 32位的是在32位电脑上操作的
trytry1992 2017-07-26
  • 打赏
  • 举报
回复
引用 5 楼 shunweilan 的回复:
[quote=引用 4 楼 trytry1992 的回复:] 64为的JDK你用64的可以,你换成32位以后,JDK也要换成32位的呀
没有 32位环境 我是在32位win7上运行的 JDK VS编译都是32位的[/quote] 你在32位的电脑上怎么编译64位通过的
理想三旬 2017-07-25
  • 打赏
  • 举报
回复
我顶!!!!
理想三旬 2017-07-25
  • 打赏
  • 举报
回复
引用 4 楼 trytry1992 的回复:
64为的JDK你用64的可以,你换成32位以后,JDK也要换成32位的呀
没有 32位环境 我是在32位win7上运行的 JDK VS编译都是32位的
trytry1992 2017-07-25
  • 打赏
  • 举报
回复
64为的JDK你用64的可以,你换成32位以后,JDK也要换成32位的呀
trytry1992 2017-07-25
  • 打赏
  • 举报
回复
我猜是你的JDK还是64位的啊
赵4老师 2017-07-24
  • 打赏
  • 举报
回复
对象内部实现或指针字节大小惹的祸,我猜。

64,687

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧